nn.MultiheadAttention 的输入?

Inputs to the nn.MultiheadAttention?

我有 n 个向量,它们需要相互影响并输出 n 个具有相同维度 d 的向量。我相信这就是 torch.nn.MultiheadAttention 所做的。但是前向函数 expects query, key and value as inputs. According to this 博客,我需要为 qkv 中的每一个初始化一个形状为 (d x d) 的随机权重矩阵,并将每个矩阵相乘我的向量与这些权重矩阵并得到 3 (n x d) 个矩阵。现在torch.nn.MultiheadAttention期望的qkv就是这三个矩阵还是我弄错了?

当您想使用自我关注时,只需将您的输入向量传递到 torch.nn.MultiheadAttention 以用于查询、键和值。


attention  = torch.nn.MultiheadAttention(<input-size>, <num-heads>)

x, _ = attention(x, x, x)

pytorch class returns 输出状态(与输入相同的形状)和注意力过程中使用的权重。