【bug】AttributeError: ‘tuple‘ object has no attribute ‘size‘
·
目录
前言
之前一个用过的模型,修改了模型主干网络之后报了这个错。
报错
AttributeError: 'tuple' object has no attribute 'size'
这个错误是说在代码中,试图访问一个 tuple 对象的 size 属性,但是 tuple 对象并没有 size 属性。 tuple 是一种不可变的序列类型,它没有 size 属性。
提示内容
按照这个提示,可以知道是计算CE_Loss时,有个数据是tuple形式。先定位到他的位置
这是定义部分
调用部分的代码
可以发现,是outputs的形式出现了问题。
尝试修改
因为这个项目主要改动了主干网络结构
1. 先检查网络结构的文件
打印网络结构,输出发现我的网络结构都是没问题
又测试输出检查数据形式,output也没有问题
2. debug整个训练过程数据输出的部分
发现是因为我的主干里有一个辅助分支输出
在net.py中我直接给定了值为True,但是在训练时train.py中选择了False
所以在训练过程中的outputs是一个有包含两个Tensor的Tuple,但是我的CE_Loss需要的是一个Tensor
修改两者一致即可
3. 走的弯路 ,可能性
顺手总结一下,以后遇到继续添加。
summary的一个bug,需要升级
[已解決][PyTorch] AttributeError: 'tuple' object has no attribute 'size'
pytorch 踩坑之'tuple' object has no attribute 'size'_pytorch tuple
数据输出类型出错,Tensor或Tuple
特征图输出类型 Tensor或Tuple_tuple和tensor
数据的输出和输入设置没有对应
就我这种了
T_T 我太难了
更多推荐
已为社区贡献4条内容
所有评论(0)