首页 > 解决方案 > nn.MultiheadAttention 的输入?

问题描述

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

标签: pythondeep-learningpytorchattention-model

解决方案


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


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

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

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


推荐阅读