搭建自己的深度学习模型_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,))

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值