YOLOV5训练时MAP、R、P值为0,测试时无检验框

YOLOV5训练时MAP、R、P值为0,测试时无检验框

问题引出:

​ 今天帮一个大三的学生,跑yolov5,首先我观察他电脑的配置:显卡是GTX1650,进入英伟达控制面板发现他最高支持的cuda版本的是11.7,便给他装了11.6的cuda和cudnn,但是训练的过程中,发现出现了一段警告,警告的内容为:

C:\Users\28322\AppData\Local\Programs\Python\Python37\lib\site-packages\torch\optim\lr_scheduler.py:136: UserWarning: Detected call of `lr_scheduler.step()` before `optimizer.step()`. In PyTorch 1.1.0 and later, you should call them in the opposite order: `optimizer.step()` before `lr_scheduler.step()`.  Failure to do this will result in PyTorch skipping the first value of the learning rate schedule.See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate "https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate", UserWarning)

并且训练中的每一个epoch的MAP值、P值以及R值均为0(如下所示)

解决过程:

说一下我的思路:

  1. 排除pytorch版本问题
    ​ 我将pytorch版本卸载,换了个低一点的pytorch,进行训练的时候,发现依然出现这个问题,因此我排除是pytorch版本导致。

  2. 排除python版本和pytorch版本问题
    ​ 因为在上午的时候,我给一个大二的学生配置yolov5,相同的显卡,相同的cuda但是那个大二的学生的python版本是3.8,而这个大三的学生python版本是3.7,所以我创建了一个python3.8的虚拟环境,然后安装好对应的pytorch版本后进行训练,发现该问题依然存在,所以排除。

  3. 接下来排除数据问题
    ​ 紧接着,我怀疑是不是我的数据除了问题,我找了一个小型数据集,进行测试,发现依然出现这个问题,而这个数据集在很多人的电脑都跑通了,故排除数据集问题。

  4. cuda版本问题
    ​ 我在网上找相关的结局的时候看到两篇文章(下面的参考文献),都是再说这个问题,他们一阵见血的指出是cuda问题,所以我将cuda卸载,换成了cuda10.2之后,装pytorch为1.9.1 torchvision为0.10.1之后,进行训练,终于MAP、P、R值都有值了,芜湖,起飞!!!!

我们跑10个epoch进行测试,

并对训练出来的权重进行测试,最后成功显示出结果:

解决掉这个问题,也许只为了这一刻

参考文献:

https://www.iotword.com/4713.html
https://huaweicloud.csdn.net/63806d50dacf622b8df88045.html

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 可能是由于以下原因导致的: 1. 数据集中没有目标物体或者标注有误,导致模型无法学习到有效的特征。 2. 训练参数设置不当,例如学习率过大或过小,训练轮数不足等。 3. 硬件配置不足,例如显存不足,导致模型无法正常训练。 建议检查数据集和标注是否正确,调整训练参数,增加训练轮数,并确保硬件配置足够。 ### 回答2: YOLOv5是一种流行的目标检测算法,它在许多计算机视觉任务中都得到了广泛应用。在YOLOv5的训练过程中,p、r和map是非常重要的评估指标,它们能够反映出模型的性能。 当p、r和map全为0,这通常表示着模型的性能非常糟糕,可能存在一些问题导致训练结果无法评估。 有几个常见的原因会导致这种情况: 1. 数据问题:如果训练数据集中存在一些问题,例如数据标注不准确或者存在缺失标签等情况,都可能导致模型的性能下降。因此,在训练之前应该对数据集进行仔细的检查和处理,确保数据的质量和完整性。 2. 模型参数问题:模型的参数设置也非常重要,如果参数设置不合理,例如学习率过高或过低,正则化项过强等,都会对模型的训练效果造成严重影响。因此,在进行模型训练前,需要仔细地选择参数并进行调优。 3. 训练过程问题:训练过程中存在一些问题也可能导致p、r和map全为0。例如过拟合或欠拟合等情况都需要对训练过程进行仔细调整。此外,可能需要将训练数据集划分成更小的批次,使用更小的学习率等。 4. 环境问题:最后,环境问题也可能会影响p、r和map指标。例如,训练的硬件设备性能不佳或训练过程中的崩溃等情况都可能影响模型的训练效果。因此,在训练之前需要确保环境的稳定性和性能。 总之,当p、r和map全为0,需要对训练过程进行仔细的调查和诊断,寻找问题的根源并进行相应的解决。只有在充分理解和解决这些问题后,才能获得良好的模型性能和准确的评估结果。 ### 回答3: 在训练yolov5模型的过程中,可能会遇到PRmAP均为0的情况,这通常是由于以下几个原因导致的: 1. 数据集问题:数据集可能存在错误标注或者数据严重失衡,导致模型训练时无法学习到有效信息。此可以检查数据集标注是否正确,并尝试平衡数据集。 2. 训练参数问题:可能是训练过程中的一些参数设置不合理导致结果为0。此需要检查模型参数和训练参数,如学习率等。 3. 模型结构问题:模型结构的选择和设计也很重要,如果选择的模型结构不合适,或者设计的不合理,有可能会导致训练结果为0。可以尝试在模型结构上进行改进和调整,比如增加层数或调整卷积核大小等。 4. 训练数据不足:如果训练集不够大或者数据量不足,也会导致PRmAP为0。此可以尝试增加训练集的大小或者使用数据增强进行扩充。 综上所述,当yolov5训练PR和mAP全为0,需要仔细检查数据集、训练参数、模型结构以及训练数据是否充足,找到问题所在然后进行相应的调整和改进,从而提高模型的训练效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值