더북(TheBook)

계층 개수(13개의 계층으로 구성), 배치 개수(한 개의 문장으로 구성), 토큰 개수(33개의 토큰으로 구성), 은닉층의 유닛 개수(768 특성(feature))로 구성되어 있는 것을 확인할 수 있습니다. 원래 버트는 12개의 계층으로 구성되어 있지만 최종 13개로 표현되는 이유는(중간 생략했기 때문에 13개인지 확인할 수 없으니 예제 결과를 확인) 첫 번째 임베딩 계층이 포함되었기 때문입니다.

앞에서 확인했듯이 현재는 네 개의 차원(계층, 배치, 토큰, 은닉층 유닛)으로 구성되어 있습니다. 이것을 세 개의 차원(토큰, 계층, 은닉층 유닛)으로 변환합니다.

코드 10-60 모델의 은닉 상태 정보 확인

print('은닉 상태의 유형: ', type(hidden_states))
print('각 계층에서의 텐서 형태: ', hidden_states[0].size())

다음은 은닉 상태의 유형과 각 계층에서의 텐서의 형태를 보여 줍니다.

은닉 상태의 유형: <class 'tuple'>
각 계층에서의 텐서 형태: torch.Size([1, 33, 768])

은닉 상태는 튜플로 구성되어 있으며 각 계층에서의 텐서는 [1, 33, 768] 형태를 갖습니다.

이제 각 계층의 텐서를 결합하여 하나의 텐서를 생성합니다.

코드 10-61 텐서의 형태 변경

token_embeddings = torch.stack(hidden_states, dim=0) ------ 각 계층의 텐서 결합은 stack을 사용
token_embeddings.size() ------ 최종 텐서의 형태를 출력
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.