具有不同维度的编码器输出和解码器存储器的pytorch变压器

问题描述 投票:0回答:0

Pytorch Transformer接受一个

d_model
参数

他们说在论坛那个

transformer 模型 不是基于编码器和解码器 不同的输出特征

这是正确的,但不应将 Pytorch 实现限制为更通用。的确,在论文中所有的数据流都具有相同的维度==

d_model
,但这不应该是理论上的限制。

我正在寻找 Pytorch 的变压器在这方面不通用的原因,因为我确信这是有充分理由的


我试图理解这个

Multi-Head Attention 接受具有正交维度的

query
key
value
矩阵。
要理解,仅凭这一事实就应该允许转换器模型为编码器提供一个输出大小(其输入的大小,由于跳过连接)和另一个为解码器的输入(和由于跳过连接的输出)。

现在,看看解码器中的多头注意层,它从解码器接收 Q,从编码器接收 K、V。我不明白为什么 K、V 的维度不能与 Q 不同,即使有跳过连接也是如此。我们可以只设置

d_Q==d_decoder==layer_output_dim
d_K==d_V==encoder_output_dim
,一切仍然有效,因为Multi-Head Attention应该能够处理不同的嵌入大小。

我错过了什么,或者,如何编写一个更通用的变压器,而不完全破坏 Pytorch 并从头开始编写?

python machine-learning deep-learning pytorch transformer-model
© www.soinside.com 2019 - 2024. All rights reserved.