复现Transformer主干网络过程中的小插曲

今天周末,在家准备复现Transformer主干网络架构,期待中的一帆风顺果然还是没有出现…

报错说明,此处错误是我在复现,Transformer编码器过程中出现的,我的整个复现思路上是严格遵守,Transformer的实现思路的,但是出于对某些细节上可能功夫还是对Transformer理解不到位,所以造成了这个问题的出现。

复现Transformer网络架构参考论文地址:

个人百度网盘下载地址
链接:https://pan.baidu.com/s/1p9ZJpgeTTjEQVQmQDobbPA
提取码:l980
复制这段内容后打开百度网盘手机App,操作更方便哦

复现的Transformer网络架构如图所示:
复现Transformer主干网络过程中的小插曲_第1张图片

在报错代码环节我是严格按照该网络架构实现,但依然还是出现了以下问题,总结来讲其实是1个问题,就是上一级所传的数据需要一个张量,但是我提供的是一个元祖。

AttributeError: 'tuple' object has no attribute 'mean'
TypeError: dropout(): argument 'input' (position 1) must be Tensor, not tuple

通过简单的对数据传输路径的分析,得到以下结论:

  1. 初始输入数据无问题,张量维度为torch.Size([2, 4, 512]);
  2. 模型实现结构代码无问题;
  3. 很有可能是上一个子层的返回数据结构有偏差;

果然,就是这个问题;

调整上一个子层返回数据结构,问题解决:耗时10分钟…
在这里插入图片描述
综合来看这个问题的出现还是个人对Transformer整体架构的一些细节理解不到位,还得继续加油…

你可能感兴趣的:(网络,人工智能,Transformer,Transformer论文下载)