Python 输入nn.MultiheadAttention?

Python 输入nn.MultiheadAttention?,python,deep-learning,pytorch,attention-model,Python,Deep Learning,Pytorch,Attention Model,我有n-向量,它们需要相互影响,并输出n具有相同维度d的向量。我相信这就是多头注意力所做的。但正向函数查询,键和值作为输入。根据blog,我需要为q、k和v中的每一个初始化一个形状(dxd)的随机权重矩阵,并将我的每个向量与这些权重矩阵相乘,得到3个(nxd)矩阵。现在,torch.nn.MultiheadAttention所期望的q、k和v就是这三个矩阵,还是我弄错了?当你想使用自我注意时,只需将你的输入向量传递到torch.nn.MultiheadAttention,查询、键和值 atte

我有
n
-向量,它们需要相互影响,并输出
n
具有相同维度
d
的向量。我相信这就是多头注意力所做的。但正向函数查询,键和值作为输入。根据blog,我需要为
q
k
v
中的每一个初始化一个形状
(dxd)
的随机权重矩阵,并将我的每个向量与这些权重矩阵相乘,得到3个
(nxd)
矩阵。现在,
torch.nn.MultiheadAttention
所期望的
q
k
v
就是这三个矩阵,还是我弄错了?

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


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

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

注意=火炬.nn.多头注意(,)
x、 注意(x,x,x)

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

输入
x
是否应该是令牌ID序列或嵌入?