① torch.unsqueeze는 텐서에 차원을 추가할 때 사용합니다. 또한, (0)은 차원이 추가될 위치를 의미합니다.
예를 들어 형태가 (3)인 텐서가 있다고 가정해 보겠습니다. 0 위치에 차원을 추가하면 형태가 (1,3)이 됩니다. 즉, 행 한 개와 열 세 개의 구조를 갖는 텐서가 만들어집니다. 그렇다면 2D에 텐서가 추가될 때는 어떨까요?
• 형태가 (2,2)인 2D 텐서가 있을 때 0 위치에 차원을 추가하면 텐서 모양이 (1,2,2)가 됩니다. 이는 하나의 채널, 행 두 개와 열 두 개를 의미합니다.
• 1 위치에 차원을 추가하면 (2,1,2)의 형태가 되므로 채널 두 개, 행 한 개, 열 두 개가 됩니다.
• 2 위치에 차원을 추가하면 텐서는 (2,2,1)의 형태가 됩니다. 즉, 채널 두 개와 행 두 개, 열 한 개를 의미합니다.
② 소프트맥스(softmax)는 지정된 차원(dim)을 따라 텐서의 요소(텐서의 개별 값)가 (0, 1) 범위에 있고 합계가 1이 되도록 크기를 다시 조정합니다.
ⓐ outputs에 softmax를 적용하여 각 행의 합이 1이 되도록 합니다.
ⓑ ⓐ의 값 중 모든 행(:)에서 두 번째 칼럼(1번째 인덱스)을 가져옵니다.
▲ 그림 6-6 배열과 인덱스
ⓒ 배열을 리스트 형태로 변환합니다.