torch.dot, torch.matmul, torch.mm, torch.bmm
torch.dot
- 벡터의 내적만 지원. (numpy와는 다르게 행렬곱/행렬연산은 지원하지 않는다.)
torch.matmul
- vector의 내적, 행렬의 연산 다 사용가능
- broadcasting을 지원한다. (debugging에서 불리한 포인트)
torch.mm
- 행렬의 곱셈만 지원. vector의 내적 불가능.
- broadcasting을 지원하지 않는다. → Debug에서 유리하다.
- 추가적으로, batch 차원까지 연산을 지원해주지는 않는다. 딱, 2차원 행렬끼리의 곱만 연산가능하다.
- ex. (3, 4) @ (4, 10) = (3, 10)
torch.bmm
- torch.mm과의 차이점은 mm은 2차원 행렬의 곱 연산만 지원하고,
torch.bmm은 3차원 텐서의 곱 연산만 지원한다.
- ex. (10, 5, 3) @ (10, 3, 2) = (10, 5, 2)