微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nn.MultiheadAttention 的输入?

如何解决nn.MultiheadAttention 的输入?

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

解决方法

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


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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。