在搭建模型的过程中遇到一些小坑。如图所示:

根据错误提示,出错的地方是:

(图中train_loader是我将自己的数据集通过torch中的DataLoader加载出来的,于是我看到了collate_fn参数,这个参数是我将自己的数据集打包(train_data_set.collate_fn)后在传入的)
我查看了自己的数据集,但是我的数据集全都进行了统一的格式化处理(uint8),也就是说我的图像都是1通道的,但是错误提示我的图像是三通道的。于是我经过调试,先查看了我的collate_fn方法。

我自定义的函数在数据的输入输出后都没有对数据的通道做改变,也就是说,错误发生在这一步之前,继续往上找:

如图所示,train_loader是由train_data_set传入DataLoader返回的,因此对传入MyDataset的参数进行检查,前面两个参数都是图像路径和标签,没有问题,最后一个是需要传入transform的参数,我自己定义的参数是这样的:

注意最后一个参数,这个参数是用于图像归一化的,我这里是单通道图像,而参数设定的值适用于三通道图像,应该把这个参数改成:transforms.Normalize((0.5,), (0.5,))
再次运行:没有报错,也就是说,我在图像归一化的时候更改了图像的通道数,导致后面一系列爆错。。
在搭建模型时,作者遇到错误提示关于图像通道数不符。通过检查发现,问题出在图像归一化步骤,原本的参数适用于三通道图像,但作者的数据是单通道。调整归一化参数后,问题得到解决,错误不再出现。
1132

被折叠的 条评论
为什么被折叠?



