pytorch自定义数据集语义分割报错备忘RuntimeError: 1only batches of spatial targets supported (3D tensors)

报错原文:RuntimeError: 1only batches of spatial targets supported (3D tensors) but got targets of size: : [4, 480, 480, 3]
在网上查了很多只指出是通道错误没有细说,而且自己没有修改过原文代码,自己分析了以下主要有以下的可能性:
由于我使用的是labelme作的数据集,然后后期还自己作了一些图像增广,其中可能出现以下问题:
- 增广的mask保存没有用无损保存,会产生误差,保存png应使用[int(cv2.IMWRITE_PNG_COMPRESSION),0]
- 保存的默认三通道但是参与运算的只能是单通道label,详细说明:自己使用labelme2voc生成的都是RGB三通道的标签(batch,w,h,channel),在运算过程中要求使用的是单通道灰度标签(batch,w,h),需要进行转化,转化方法:彩色标签转灰度标签

你可能感兴趣的:(pytorch,深度学习)