attn_combine对应decoder端的哪个结构呢?

来源:12-5 Seq2Seq-Attention编程实例-定义模型结构模块(下)

慕丝2652577

2021-09-09

请问代码中的attn_combine对应的是decoder端的哪一个结构呢?并且在attentiondecoder的forward方法里传入了inputs和encoder_outputs,请问这两个变量有什么区别吗?

写回答

1回答

会写代码的好厨师

2021-09-15

  1. att_applied = torch.bmm(atten_weight.unsqueeze(0),encoder_outputs.unsqueeze(0))

  2. output = torch.cat([embedded[0], att_applied[0]], dim=1)

  3. output = self.attn_combine(output).unsqueeze(0)


attn_combine是线形成,输入层是上面代码的第2行的输出。

att_applied 理解为加权的过程,也就是attention的过程,它的输入是encoder_outputs

encoder_outputs 是编码器的输出。

第2行代码可以理解成一种跳连的结构,类比:resnet的resblock。





0
1
慕丝2652577
非常感谢!
2021-09-26
共1条回复

PyTorch入门到进阶 实战计算机视觉与自然语言处理项目

理论基础+技术讲解+实战开发,快速掌握PyTorch框架

1190 学习 · 298 问题

查看课程