在搭建模型的过程中遇到一些小坑。如图所示:
根据错误提示,出错的地方是:
(图中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,))
再次运行:没有报错,也就是说,我在图像归一化的时候更改了图像的通道数,导致后面一系列爆错。。