数据集读取中的Image.open与cv2.imread区别在哪里?

最近在跑PSPNet语义分割的网络时,用作者给的源代码运行出现错误。错误为:

/opt/conda/conda-bld/pytorch_1565272271120/work/aten/src/THCUNN/SpatialClassNLLCriterion.cu:103: void cunn_SpatialClassNLLCriterion_updateOutput_kernel(T *, T *, T *, long *, T *, int, int, int, int, int, long) [with T = float, AccumT = float]: block: [1,0,0], thread: [671,0,0] Assertion t >= 0 && t < n_classes failed.

主要原因是读取的label标签值超过了要分割的总类别num_classes。
源程序读取的label图是用颜色标记好的,如图:
在这里插入图片描述PSPNet中读取label图像的代码为:

label = cv2.imread(label_path, cv2.IMREAD_GRAYSCALE)  # GRAY 1 channel ndarray with shape H * W

调试后发现读出来的label为一个(468,625)的numpy数组,其中部分值如下所示,可见根本不是[0,num_classes-1]范围里的数值,当然会报错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值