搭建自己的深度学习模型_output with shape [1, 167, 390] doesn‘t match the broadcast shape [3, 167, 390]

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

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

(图中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,))

再次运行:没有报错,也就是说,我在图像归一化的时候更改了图像的通道数,导致后面一系列爆错。。

猜你喜欢

转载自blog.csdn.net/Job_class/article/details/129555691
今日推荐