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

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

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

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

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

复现的Transformer网络架构如图所示:
在这里插入图片描述

在报错代码环节我是严格按照该网络架构实现,但依然还是出现了以下问题,总结来讲其实是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整体架构的一些细节理解不到位,还得继续加油…

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值