파이토치로 bert구현하는 중에 torch.nn에 있길래 써서 사용하는데 src_mask랑 src_key_padding_mask랑 패딩 마스크 넣을때 nxn 텐서로 패딩에 -inf 할당해서 넣을지 그냥 0 1로 할지 그차이임?
[일반] 파이토치 nn.TransformerEncoder 써본사람
익명(218.156)
2022-09-03 02:26
추천 0
댓글 7
다른 게시글
-
머신러닝 독학하고 있는데 넘파이부터 너무 어렵다[일반] 익명(211.218) | 22.09.02추천 0
-
파이토치vs텐서플로우 [1][❓질문] 익명(14.39) | 22.09.01추천 0
-
딥러닝 하고 cv공부 하려는데 뭐부터 해야함? [3][❓질문] 익명(115.143) | 22.08.30추천 0
-
딥러닝 국비수업 들을 만한 거 ㅊㅊ점[일반] 익명(118.235) | 22.08.29추천 0
-
Cosine annealing warm start 쓸 때 비율 보통 [1][❓질문] 익명(211.246) | 22.08.29추천 0
-
수학 잘하는 법 [2][일반] 익명(219.248) | 22.08.29추천 0
-
그래픽과 수학에 관심과 재능이 있어서.. 3D 인공지능.. [2][일반] 3ddlsrhd(182.228) | 22.08.28추천 0
-
이쪽 분야에서 SCI급 논문 2개 쓰는게 난이도가 어느정도일까? [3][일반] 익명(118.235) | 22.08.28추천 1
-
딥러닝 중에 드론 자율 비행관련 논문보려면 어떤 로드맵 거쳐야함?[❓질문] 익명(115.143) | 22.08.28추천 0
-
내년 icml 서울에서 하네 [1][일반] 익명(218.52) | 22.08.25추천 0
공식 문서 보면 다 나와 있다. src_mask는 어텐션 마스크용이고, sec_key_padding_mask는 패딩 마스크용인 것 같네
패딩 마스크는 알겠는데 어텐션 마스크가 어떤건지 모르겠어서 document보는데 "The src_mask is just a square matrix which is used to filter the attention weights" 이게 뭔지 잘 모르겠습니더...
그냥 패딩 쪽에 그냥 어텐션 스코어 0으로 가버리게 해주는건가여?
배치로 학습시켜야 하는 구조에서 패딩은 어쩔 수 없이 해야 하는 거고, 그럼 패딩 토큰에 대해 어텐션이 걸리면 안되는 건 자명한 거니까 직관적으로 시퀀스에서 어느 부분이 패딩인지만 알려주면 알아서 처리해주는 게 패딩 마스크 = src_key_padding_mask
저것과는 별개로, 어텐션을 걸 때 causal mask처럼 각 토큰이 앞의 토큰만 볼 수 있게끔 하는 등 full attention 말고 커스텀하게 어텐션 주고 싶을 때 쓰는 게 어텐션 마스크 = src_mask
아규먼트 상으로는 저렇게 구별해놨지만 사실 src_key_padding_mask 안 쓰고 n x n 어텐션 매트릭스에서 패딩 토큰에 해당하는 행/열에 마스크 씌워서 src_mask로 넘겨주면 똑같음
깔끔한 설명 감사합니다 덕분에 깔삼하게 해결 됐습니다 ㅠㅠ