在整个informer架构中,进入到了绿色的部分,也就是decoder的部分。在这里需要的参数的维度进行下面的描述:
dec_out:(32,72,512)
enc_out:(32,48,512),也就是上文通过稀疏attention和卷积后相比于词编码减少了一半维度的数据是(32,48,512)。

下一步进入真正decoder,发现Decoder好像比较简单?相比于Encoder,整个decoder层也只有51行代码,这个Decoder类,初始化的部分只有两个一个是layer一个是标准化层。

对整个layer进行显示查看,整个layer只有一个DecoderLayer,这个DecoderLayer里面主要包括三个部分,
(1)是self-attention也就是自编码层,是对decoder的inputs进行编码的层。
(2)是cross-attention也就是和encoder的output进行交叉编码的层。

对于Decoder来说,他要求的输入是x和cross,而x就是decoder的inputs的词编码后的数据他的维度是(32,72,512),而cross的维度是(32,48,512)也就是encoder的输出。
接下来进入到DecoderLayer层,
在经过DecoderLayer层的第一个红色部分的时候,x是经过self-attention计算的编码,将这个计算后的编码和x进行相添加,x最后的维度还是不变的还是(32,72,512)

512变成了7,也就是(32,72,7)
956

被折叠的 条评论
为什么被折叠?



