* 강사님의 자료는 저작권이 있기 때문에 배운 내용을 최대한 간단하게 정리하는 수준으로 작성하였습니다.
* Section 3는 넘파이를 정리하는 수준이었기에 스킵했습니다.
텐서 형태
- 스칼라 (0D 텐서)
- 벡터 (1D 텐서)
- 행렬 (2D 텐서) : 가로, 세로 두 축을 가짐
- 텐서 (3차원 이상의 행렬)
* k x n x m (높이 x 너비 x 깊이)
텐서 고급 연산 정리 1
텐서 간의 곱셈
- torch.matmul() → 모든 차원 연산 가능
- torch.mm() → 2D 텐서 간의 연산만 지원
- torch.bmm() → 3D 텐서 간의 연산만 지원
곱셈 예시
- 1D X 1D 곱셈
- 2D x 2D 곱셈
- 1D x 2D 곱셈
- (a, ) x (a, b) (a가 같아야 함)
- 1D x 3D 이상의 텐서 곱셈
- 3D 이상은 batched matrix로 간주됨
- (a) / (b,c,d) → b x (c,d)
- b x ((a) x (c,d)) → 1D x 2D와 마찬가지로 a와 c는 동일해야함
- (a) x (b,a,d) → (b,d)
텐서 고급 연산 정리 2
곱셈 예시
- 2D x 1D
- 3D 이상 텐서 x 1D
- (a,b,d) / (d)
- a x (b,c) x (d) → 2D x 1D 텐서와 마찬가지로 c와 d는 동일해야함
- (a,b,c) x (c) → (a,b)
- n-D 텐서 (n > 2) 간의 곱
- 'Batched Matrix Multiplication' 방식으로 계산됨
- (b,m,n) x (b,n,k) → b개의 (m,n) & b개의 (n,k)
- (b x m x n) * (b x n x k) = (b x m x k)
matmul 이외에 곱셈식
- torch.mm() : 행렬곱만 지원
- torch.bmm() : 3D shape의 곱만 지원
* written on June 27th