인프런 커뮤니티 질문&답변

김남욱님의 프로필 이미지
김남욱

작성한 질문수

최신 딥러닝 기술 Vision Transformer 개념부터 Pytorch 구현까지

비전 트랜스포머

Multi-Head Attention 모델 구조에서 궁금한게 있습니다.

해결된 질문

작성

·

416

·

수정됨

0

안녕하세요. 코드 공부하면서 궁금한 점이 생겨 질문남깁니다.

앞선 이론 강의에서 이해한 바로는 MSA과정에서 Attention*value를 통해 [배치수, 헤드수, 패치수+1, Dh] 차원의 결과들이 나오고 Linear Projection을 통해 [배치수, 패치수+1, D] 차원의 결과가 얻어지는 것으로 이해했습니다.

attention = torch.softmax(q @ k / self.scale, dim=-1)
x = self.dropout(attention) @ v
x = x.permute(0,2,1,3).reshape(batch_size, -1, self.latent_vec_dim)

위와 같이 제공해주신 코드에는 이를 위한 Linear 과정이 따로 없는 것 같고 Attention*value 결과에 permute와 reshape를 해주었는데, 해당 과정이 이론에서 설명해주신 Linear 과정과 동일한 효과를 지니는 것일까요??

답변 1

0

딥러닝호형님의 프로필 이미지
딥러닝호형
지식공유자

안녕하세요.

y=Ax 형태가 linear 연산입니다. 즉, attention @ v가 linear 연산입니다!

감사합니다.

김남욱님의 프로필 이미지
김남욱

작성한 질문수

질문하기