Vector: 1차원 배열 Matrix: 2차원 배열 Tensor: 3차원 이상의 고차원 배열

Numpy: vector, matrix, tensor를 python에서 잘 다루기 위해서 기획된 패키지

Pytorch는 학습하기 쉽도록 Numpy를 기반으로 만들어진 딥러닝 프레임워크로서
numpy나 pytorch 중 하나를 잘 다루게 된다면 다른 하나도 쉽게 학습할 수 있다.

텐서의 차원과 형태

# PyTorch 라이브러리를 먼저 로드해준다.
import torch

# 3 by 4 형태의 random matrix를 만들어준다.
X = torch.rand(3, 4)

print('X.dim(): ', X.dim()) # 차원을 출력
print('X.shape: ', X.shape)
print('X.size(): ', X.size()) # 텐서의 모양을 출력

결과

X.dim(): 2 # 2차원 배열
X.shape: torch.size([3, 4])
X.size(): torch.size([3, 4])

shape과 size는 같은 역할을 하지만, shape은 attribute 즉, Object이며 size는 method(function)이다.
size는 shape이라는 객체를 읽어서 반환하는 함수이다.
우선은 같은 정보를 얻는데 두 가지 방식으로 접근이 가능하다는 점만 알아두자.

Mul과 Matmul의 차이

X.matmul(Y) # 행렬의 곱셈 (내적)
X.mul(Y) # X*Y 와 동일. 각 원소 별로 곱하는 연산. (shape이 동일해야 한다)