텐서의 차원을 조작하는 코드는 다음과 같습니다.
temp = torch.tensor([ [1, 2], [3, 4]]) ------ 2×2 행렬 생성 print(temp.shape) print('------------------------') print(temp.view(4, 1)) ------ 2×2 행렬을 4×1로 변형 print('------------------------') print(temp.view(-1)) ------ 2×2 행렬을 1차원 벡터로 변형 print('------------------------') print(temp.view(1, -1)) ------ -1은 (1, ?)와 같은 의미로 다른 차원으로부터 해당 값을 유추하겠다는 것입니다. temp의 원소 개수(2×2=4)를 유지한 채 (1, ?)의 형태를 만족해야 하므로 (1, 4)가 됩니다. print('------------------------') print(temp.view(-1, 1)) ------ 앞에서와 마찬가지로 (?, 1)의 의미로 temp의 원소 개수(2×2=4)를 유지한 채 (?, 1)의 형태를 만족해야 하므로 (4, 1)이 됩니다.
다음은 텐서의 차원을 조작한 결과입니다.
torch.Size([2, 2]) ------------------------ tensor([[1], [2], [3], [4]]) ------------------------ tensor([1, 2, 3, 4]) ------------------------ tensor([[1, 2, 3, 4]]) ------------------------ tensor([[1], [2], [3], [4]])
텐서의 사용에 대해 알아보았으므로 이제 구체적으로 데이터를 준비하고 신경망을 구축하는 단계로 넘어가겠습니다.