神经网络
文章平均质量分 52
勤劳的复读机
人类的本质是?
展开
-
在Keras中实现Multi-head-attention
多头注意力机制其实本质上就是将多个注意力结果进行拼接后输出,目前有多种拼接的方法。第一种:拼接后乘以一个可训练矩阵进行维度转换。例如有32维数据,则设置8个head,每个head有32维,则最后拼接结果为32x8=256维,再设置一权值矩阵为W0为(256x32),则最后结果为【1x256】x【256x32】=1x32第二种方法:将每一个头的维度缩小再对每个头的结果直接拼接为最后的输出维度。例如有128维数据,则设置8个head,每个head有16维,则最后拼接结果为16x8=128维。第三种原创 2021-11-16 19:08:39 · 4810 阅读 · 0 评论 -
在Keras中自定义Attention层
具体的公式随处可见,就不展开了讨论了,在build中定义了WQ,WK,WV三个可训练的权值矩阵(batch_size,len,embedding_size),通过对input相乘后将WQ与WK的转置矩阵相乘((batch_size,len,embedding_size)(batch_size,embedding_size,len)=(batch_size,len,len)),并对该结果进行softmax运算,再对WV进行扩维,扩维至(batch_size,len,len,embedding_size),扩维原创 2021-11-16 18:47:09 · 2916 阅读 · 3 评论