<jupyter_start><jupyter_text>2022/01/12/WED<jupyter_code>import torch
t=torch.FloatTensor([0.,1.,2.,3.,4.,5.,6.])
print(t)
print(t.dim())
print(t.shape)
print(t.size())
print(t[0],t[1],t[-1])<jupyter_output>1
torch.Size([7])
torch.Size([7])
tensor(0.) tensor(1.) tensor(6.)<jupyter_text>- 그 외에도 slicing도 ndarray처럼 사용 가능- 2차원 3차원도 ndarray처럼 사용 가능 >  Broadcasting<jupyter_code>m1 = torch.FloatTensor([[3,3]])
m2 = torch.FloatTensor([[2,2]])
print(m1+m2)<jupyter_output>tensor([[5., 5.]])<jupyter_text>- 이렇게 같은 크기뿐만 아니라 Broadcasting을 통해<jupyter_code>m1 = torch.FloatTensor([[1,2]])
m2 = torch.FloatTensor([[3]])
print(m1+m2)<jupyter_output>tensor([[4., 5.]])<jupyter_text>- 이렇게 크기가 동일하지 않아도 pytorch가 자동으로 동일한 size로 변환하여 연산 수행 가능<jupyter_code>m1 = torch.FloatTensor([[1,2]])
m2 = torch.FloatTensor([[3],[4]])
print(m1+m2)
print(m1.shape)
m1
print(m2.shape)
m2<jupyter_output><empty_output><jupyter_text>- 이렇게 행렬 모양이 다르더라도 m1과 m2를 각각 2x2행렬로 변경하여 덧셈 수행하는 기능도 가능하다- 이런 Broadcasting 기능은 자동으로 수행되기 때문에 잘못 사용하지 않게 유의하자<jupyter_code>m1 = torch.FloatTensor([[1,2],[3,4]])
m2 = torch.FloatTensor([[3],[4]])
print(m1*m2)
print(m1.mul(m2))<jupyter_output>tensor([[ 3.,  6.],
        [12., 16.]])
tensor([[ 3.,  6.],
        [12., 16.]])<jupyter_text>- 이때 m2가 Broadcasting되면서 우리가 일반적으로 알고 있는 행렬 연산 수행과는 상이하게 진행됨- 우리가 알고 있는 행렬 연산을 하기 위해서는<jupyter_code>m1 = torch.FloatTensor([[1,2],[3,4]])
m2 = torch.FloatTensor([[3],[4]])
print(m1.matmul(m2))<jupyter_output>tensor([[11.],
        [25.]])<jupyter_text>- 이렇게 해야한다.<jupyter_code>t = torch.FloatTensor([1,2])
print(t.mean())
t = torch.FloatTensor([[1,2],[3,4]])
print(t.mean(dim=0)) # dim=0을 없애겠다.  (2x2) -> (1x2)
print(t.mean(dim=1)) # dim=1을 없애겠다.  (2x2) -> (2x1)
print(t.mean(dim=-1))
t = torch.FloatTensor([[1,2],[3,4]])
print(t)
print(t.sum())
print(t.sum(dim=0))
print(t.sum(dim=1))
print(t.sum(dim=-1))
t = torch.FloatTensor([[3,2],[1,4]])
print(t)
print(t.max())
print(t.max(dim=0)) # dim=0 제외하고 각 열에서의 max와 그 때의 index값을 알려줌
print(t.max(dim=0)[0]) # max값
print(t.max(dim=0)[1]) # max값의 index 즉, argmax
print(t.max(dim=1))
print(t.max(dim=1)[0])
print(t.max(dim=1)[1])<jupyter_output>torch.return_types.max(
values=tensor([3., 4.]),
indices=tensor([0, 1]))
tensor([3., 4.])
tensor([0, 1])
{'fraction_non_alphanumeric': 0.2312528064660979, 'fraction_numerical': 0.06690615177368657, 'mean_word_length': 6.0062893081761, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 26, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '37277', 'license': 'Apache-2.0', 'n_tokens_mistral': 1282, 'n_tokens_neox': 1372, 'n_words': 178, 'path': '_notebooks/2022-01-12-intro.ipynb', 'repo_name': 'rhkrehtjd/INTROdl', 'size': '2227'}