【bug】AttributeError: ‘tuple‘ object has no attribute ‘size‘

目录

前言

报错

提示内容

尝试修改

1. 先检查网络结构的文件

2. debug整个训练过程数据输出的部分

3.  走的弯路 ,可能性

summary的一个bug,需要升级

数据输出类型出错,Tensor或Tuple

数据的输出和输入设置没有对应


前言

之前一个用过的模型,修改了模型主干网络之后报了这个错。

报错

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 我太难了

猜你喜欢

转载自blog.csdn.net/m0_70813473/article/details/130411814