python - nn.MultiheadAttention 的输入?
问题描述
我有n
需要相互影响的 -vectors 和n
具有相同维度的输出向量d
。我相信这就是这样torch.nn.MultiheadAttention
做的。但是 forward 函数需要查询、键和值作为输入。根据这个博客,我需要(d x d)
为每个初始化一个形状的随机权重矩阵q
,k
并将v
我的每个向量与这些权重矩阵相乘,得到 3 个(n x d)
矩阵。现在是q
,k
并且仅v
由这三个矩阵所期望,torch.nn.MultiheadAttention
还是我弄错了?
解决方案
当您想使用自注意力时,只需将输入向量传递给torch.nn.MultiheadAttention
查询、键和值即可。
attention = torch.nn.MultiheadAttention(<input-size>, <num-heads>)
x, _ = attention(x, x, x)
pytorch 类返回输出状态(与输入相同的形状)和注意力过程中使用的权重。
推荐阅读
- c# - SyncFusion SfRichTextEditor 不返回使用 Prism、Xamarin.Forms 在 Android 上编辑的文本
- visual-studio-code - 如何更改材质主题文本颜色
- cypress - 如何在 cypress 中测试视频文件上传?
- amazon-cloudformation - 如何使用 CDK 修改 EKS 的默认容量实例角色?
- ggplot2 - 在ggplot中使用给定的最大和最小x值创建一个平滑图
- java - 如何为提议的 Java 语言特性提供反馈?
- javascript - 如何在 vs 代码中完全删除更漂亮的代码格式化插件?
- python - 我有泡菜的问题
- html - 如何更改具体化 css 中某一部分的字体大小?
- xml - XML Schema、Xlink 和内联链接验证