Tensor 연산 · 학습
이번에 배울 내용
shape가 맞아도 의도한 연산이 아닐 수 있습니다. 축·행렬곱·Broadcasting을 출력의 의미와 연결합니다.
전체 흐름
Tensor의 축·shape → 연결과 행렬곱 → reshape·Broadcasting
Batch와 특징의 축
표본 세 개에 특징 네 개가 있으면 shape는 (3,4)입니다. cat은 기존 축을 이어 붙이고 stack은 새 축을 만듭니다. 축이 늘거나 줄어도 표본·특징의 의미를 추적합니다.
계산 가능과 올바른 계산
Broadcasting은 크기가 다른 배열을 확장해 연산하지만 의도하지 않은 축에도 적용될 수 있습니다. 곱셈 전에 예상 shape를 쓰고, 작은 수치 예로 결과를 확인하면 조용한 오류를 찾기 쉽습니다.
풀이 예제
X=arange(12).reshape(3,4)이며 행은 표본, 열은 특징입니다.
import torch
X=torch.arange(12,dtype=torch.float32).reshape(3,4)
print(X,X.shape,torch.cat([X,X],dim=0).shape)
tensor([[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.]]) torch.Size([3, 4]) torch.Size([6, 4])