Attention机制,是根据目标给输入分配权重,并加权求和的操作。
标准的输入为三部分,即Query, Key, Value。(下面简写为Q,K,V)
标准的操作是根据Query和Key计算出一个score,并使用该score作为权重,对Value进行加权求和。
即 step1, score = F(Q, K)
step2, attention_weight = softmax(score)
step3, output = sum(attention_weight * V)
下面以tf代码给出简单例子:
import tensorflow as tf
import numpy as np
# input as shape (batch_size, seq_len, embedding_size)
batch_size =10
seq_len = 20
embedding_size = 30
data = tf.constant(np.random.rand(batch_size, seq_len, embedding_size), dtype=tf.float32)
attlayer = tf.keras.layers.Attention()
out = attlayer([data, data])
print(out.shape)
# (10, 20, 30)
Reference:
[1] https://www.tensorflow.org/api_docs/python/tf/keras/layers/Attention
本文地址:https://blog.csdn.net/weixin_43378751/article/details/107156565
如对本文有疑问, 点击进行留言回复!!
asp.net使用三层架构实现简单的增删改查(1)—— 搭建三层架构
分布式计算是指系统的工作方式,主要分为数据分布式和任务分布式
Spark Core快速入门系列(1) | 什么是RDD?一文带你快速了解Spark中RDD的概念!
Spark Core快速入门系列(2) | Spark Core中编程模型的理解与RDD的创建
IOS-海外版授权分享推送统计 Google FaceBook Twitter Instagram
网友评论