최종적인 텐서의 형태는 다음과 같습니다.
torch.Size([13, 1, 33, 768])
최종 텐서에서 불필요한 ‘배치’ 차원을 제거합니다.
코드 10-62 텐서의 형태 변경
token_embeddings = torch.squeeze(token_embeddings, dim=1) ------ 배치 차원(1) 제거
token_embeddings.size() ------ 배치 차원 제거 후 최종 텐서의 형태를 출력
다음은 배치 차원이 제거된 텐서의 최종 형태를 출력한 결과입니다.
torch.Size([13, 33, 768])
마지막으로 permute를 사용하여 ‘계층 개수’와 ‘토큰 개수’에 대한 차원의 위치를 바꾸어 줍니다.
코드 10-63 텐서 차원 변경
token_embeddings = token_embeddings.permute(1, 0, 2) ------ ①
token_embeddings.size()
① permute는 transpose와 유사하게 차원을 맞교환할 때 사용합니다. 구체적인 사용 방법은 다음과 같습니다.
import torch x = torch.rand(2, 3, 3) ------ 임의의 값을 갖는 텐서 생성 y = x.permute(2, 1, 0) print(x) print(y)