我对Multihead的定义有点困惑
[1]和[2]是否相同?
[1]我对多头的理解是如下的多重注意力模式
"多组Query/Key/Value权重矩阵(Transformer使用八个注意力头,因此我们最终为每个编码器/解码器提供八组(">
http://jalammar.github.io/illustrated-transformer/
但是
[2] 类中MultiheadAttention(模块(:在Pytorch Transformer模块中,看起来embed_dim是除以头的数量。。为什么?
或者。。。embeddim是指特征尺寸乘以头的数量?
self.head_dim=embed_dim//num_heads断言self.head_dim*num_heads==self.embed_dim,";embed_dim必须可被num_heads整除;
https://github.com/pytorch/pytorch/blob/master/torch/nn/modules/activation.py
根据您的理解,多头注意力是对某些数据的多次注意力。
但相比之下,它并不是通过将权重集乘以所需关注的数量来实现的。相反,您可以根据关注次数重新排列权重矩阵,也就是重塑权重矩阵。所以,从本质上讲,它仍然是多次关注的,但你正在关注重量的不同部分。