yolov5训练模型出问题

YOLOv5-6.1训练一个四分类模型时出现如下错误,请问大家如何修改

  File "F:\yolo\road_detect\yolov5-v6.1\utils\loss.py", line 148, in __call__
   t[range(n), tcls[i]] = self.cp
IndexError: index 9 is out of bounds for dimension 1 with size 4

img

分类请运行yolov5/classify/train.py这个文件,而不是yolov5/train.py,这两个是不一样的

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7418672
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【YOLOv5-6.x】数据增强代码解析
  • 除此之外, 这篇博客: 【YOLOv5实战4】基于YOLOv5的交通标志识别系统-模型测试与评估中的 2.2其他文件截图 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    1. confusion_matrix.png(混淆矩阵)
      混淆矩阵能对分类问题的预测结果进行总结,显示了分类模型的在进行预测时会对哪一部分产生混淆。纵轴为预测值,横轴为真实值。
      在这里插入图片描述

    2. F1_curve:
      F1分数与置信度之间的关系。F1分数(F1-score)是分类问题的一个衡量指标,是精确率precision和召回率recall的调和平均数,最大为1,最小为0, 1是最好,0是最差
      在这里插入图片描述

    3. labels.jpg
      第一个图 classes:每个类别的数据量
      第二个图 labels:标签
      第三个图 center xy
      第四个图 labels 标签的长和宽
      在这里插入图片描述

    4. P_curve.png :
      准确率precision和置信度confidence的关系图
      在这里插入图片描述

    5. PR_curve.png:
      PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。PR曲线下围成的面积即AP,所有类别AP平均值即Map.
      如果PR图的其中的一个曲线A完全包住另一个学习器的曲线B,则可断言A的性能优于B,当A和B发生交叉时,可以根据曲线下方的面积大小来进行比较。一般训练结果主要观察精度和召回率波动情况(波动不是很大则训练效果较好)。
      在这里插入图片描述

    6. R_curve.png :召回率和置信度之间的关系
      在这里插入图片描述

    观察上述截图可发现,博主的模型比较辣鸡(毕竟设备不行,用的数据集较少,导致准确度不高)。

  • 您还可以看一下 白勇老师的YOLOv5实战口罩佩戴检测课程中的 训练数据集小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^