nn.MultiheadAttention 的输入?

ang*_*sel 9 python deep-learning attention-model pytorch

我有n需要相互影响的向量和n具有相同维度的输出向量d。我相信这就是它的torch.nn.MultiheadAttention作用。但前向函数需要查询、键和值作为输入。根据这篇博客,我需要(d x d)为每个初始化一个形状的随机权重矩阵qk并将v每个向量与这些权重矩阵相乘,得到 3 个(n x d)矩阵。现在q,k和是这三个矩阵v所期望的torch.nn.MultiheadAttention,还是我弄错了?

The*_*fer 14

当您想使用自注意力时,只需将输入向量传递给torch.nn.MultiheadAttention查询、键和值即可。


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

x, _ = attention(x, x, x)
Run Code Online (Sandbox Code Playgroud)

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