01 cat과 stack은 shape를 어떻게 바꿀까요?
설명
cat은 기존 축을 이어 붙이고 stack은 새 축을 만듭니다.
shape가 맞아도 의도한 연산이 아닐 수 있습니다. 축·행렬곱·Broadcasting을 출력의 의미와 연결합니다.
cat은 기존 축을 이어 붙이고 stack은 새 축을 만듭니다.
행렬곱은 안쪽 차원이 같아야 하며, 원소별 곱은 같은 shape 또는 Broadcasting 규칙을 따릅니다.
첫 코드 셀의 X를 사용합니다. 행은 표본, 열은 특징입니다.
X의 Shape·dtype와 X[1], X[:,2]의 의미를 기록하세요.torch.cat([X,X], dim=0)과 torch.cat([X,X], dim=1), torch.stack([X,X], dim=0)과 torch.stack([X,X], dim=1)의 Shape를 먼저 예상하세요.앞 활동과 같은 X에서 X*X, X.T@X, X@X.T를 계산합니다.
X.T@X의 (0,1) 원소를 손으로 계산하세요. 손계산 값과 실행 결과의 해당 원소를 나란히 적고 일치 여부를 기록하세요.Y=X+1로 두고 X*Y, X.T@Y를 각각 계산해 결과 배열을 출력하세요. 두 행에 연산식과 실제 Shape를 기록해 두 곱을 구분하세요.Y를 사용한 두 연산의 출력.원소 수 12를 (2,6),(4,3),(2,2,3)으로 바꾸고, 벡터 [1,2,3,4]를 X에 더합니다.
X를 reshape하고 numel()과 flatten() 결과를 원래 X와 대조하세요. 원소 수와 순서가 유지되는지 기록하세요.X의 shape 를 유지하고 [1,2,3,4]와 [1,2,3]을 각각 더하세요. 성공한 출력 shape와 실패한 호출의 오류 메시지를 기록하세요.