首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >torch.nn.MultiheadAttention中的查询Q、键K和值V向量/矩阵应该是什么?

torch.nn.MultiheadAttention中的查询Q、键K和值V向量/矩阵应该是什么?
EN

Stack Overflow用户
提问于 2020-08-04 22:22:17
回答 1查看 523关注 0票数 1

在一个令人惊叹的blog之后,我实现了自己的自我关注模块。然而,我发现PyTorch已经实现了一个multi-head attention moduleMultiheadAttention模块的前向传递的输入包括Q (查询向量)、K (键向量)和V (值向量)。奇怪的是,PyTorch不会只接受输入嵌入,并在内部计算QKV向量。在我实现的self-attention模块中,我计算输入嵌入的QKV向量乘以QKV权重。此时,我不确定MultiheadAttention模块所需的QKV矢量输入是什么。它们应该是QKV权重还是向量,这些应该是法向量,还是应该是参数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-05 00:13:22

如果你看一下pytorch中多头注意力的实现。Q,K和V是在训练过程中学习的。在大多数情况下,应该小于嵌入向量。所以你只需要定义它们的维度,其他的都是由模块获取的。您有两个选择:

代码语言:javascript
复制
    kdim: total number of features in key. Default: None.
    vdim: total number of features in value. Default: None. 

查询向量具有嵌入的大小。注意:如果kdim和vdim为None,则它们将被设置为embed_dim,以便query、key和value具有相同数量的特征。

有关更多详细信息,请查看源代码:https://pytorch.org/docs/master/_modules/torch/nn/modules/activation.html#MultiheadAttention

特别是这个类:MultiheadAttention(模块)类:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63248948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档