해결된 질문
작성
·
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 과정과 동일한 효과를 지니는 것일까요??