RuntimeError: weight tensor should be defined either for all or no classes
找到你所用的网络的数据集的配置文件
把类别数(num_classes)+1
分割训练时,背景也算一个种类。
Github上找的:
这个bug具体是因为,作者在读取分割的label的时候,错误的使用了灰度图像,然而VOC数据集恰好有两个颜色的灰度值是一样的,所以没有区分背景以及边缘,以至于20可以跑通,而换了一个数字之后就不可以了,另外的证据是show最终效果的时候,整个图片都盖上了mask,再次证明作者没有区分背景,希望作者可以修改一下Code!
作者的其他Code还是写的非常不错的,希望能把这个小Bug尽快修改一下
我的label是彩色图像
2022-5-10更
目前来看,好像是因为评论区老哥
说的
我觉得是因为输出的通道数跟你的背景数不一致导致的,因为图像分割最后的类别数就是你的最后输出的通道数
2022-5-15更
关于YOLOv5ds,问题已经实锤,labels应为彩色图像!
感谢一位来自中海洋的朋友 朴树的普 ,提供的解决办法
语义分割|将gtFine_labelTrainIds转成彩色图_ycolourful的博客-CSDN博客
YOLOv5ds训练自己数据集参考:
来源:2021黑白灰