Attention 코드로 구현하기
스케일드 닷-프로덕트 어텐션
- 참조 : <위키독스>
- 닷-프로덕트 어텐션(dot-product attention)에서 스케일링하는 것을 추가하면
스케일드 닷-프로덕트 어텐션(Scaled dot-product Attention)
이라고 합니다 - scaled_dot_product_attention을 tensorflow로 구현, 살펴보겠습니다.
1 | def scaled_dot_product_attention(query, key, value, mask): |
테스트
- temp_q의 값 [0, 10, 0]은 Key에 해당하는 temp_k의 두번째 값 [0, 10, 0]과 일치하게 설정
1 | import tensorflow as tf |
- 어텐션 분포는 [0, 1, 0, 0]의 값을 가지며
- Value의 두번째 값인 [10, 0]이 출력되는 것을 확인할 수 있습니다.
1 | # 함수 실행 |