解决DHSNet ValueError: operands could not be broadcast together with shapes (224,224) (3, ) (224,224)

最近在复现DHSnet-pytorch模型,代码调试过程中遇到如下错误:

ValueError: operands could not be broadcast together with shapes (224,224) (3, ) (224,224)

通过错误描述可知该问题出现在 dataset.py 文件的第56行:

该函数的功能是将输入图片和ground truth 进行真值处理,以增强物体与背景的对比度,最后转化为GPU可以处理的张量。

而为什么会在这一行出错呢,该错误的描述即为:操作数不能与形状一起广播,由此可以推测 img 中向量维度出错导致不能相减。

解决方案如下:

将出错部分的代码做如下修改:

修改代码后,在运行程序,出错时会返回错误图片信息,具体如下:

根据错误图片信息可知,出现问题的图片路径为:

./dataset/DUTS/train/RGB/DUTS-TR_n03447447_4852.jpg

我们根据路径找到这幅图像,如下:

定位到问题图片后可以发现,在一堆彩色图像中混杂着一张黑白图片,可能在加载图像的时候自动将这幅图像转换为灰度图,导致该图像的向量为(224,224)而不是(224,224,3)

解决方案很简单,将问题图片删除即可

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值