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(如下所示)
解决过程:
说一下我的思路:
-
排除pytorch版本问题
我将pytorch版本卸载,换了个低一点的pytorch,进行训练的时候,发现依然出现这个问题,因此我排除是pytorch版本导致。
-
排除python版本和pytorch版本问题
因为在上午的时候,我给一个大二的学生配置yolov5,相同的显卡,相同的cuda但是那个大二的学生的python版本是3.8,而这个大三的学生python版本是3.7,所以我创建了一个python3.8的虚拟环境,然后安装好对应的pytorch版本后进行训练,发现该问题依然存在,所以排除。
-
接下来排除数据问题
紧接着,我怀疑是不是我的数据除了问题,我找了一个小型数据集,进行测试,发现依然出现这个问题,而这个数据集在很多人的电脑都跑通了,故排除数据集问题。
-
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
yolov5 - Ultralytics YOLOv8的前身,是一个用于目标检测、图像分割和图像分类任务的先进模型。
最近提交(Master分支:1 个月前 )
b163ff8d
* fix: requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-FONTTOOLS-6133203
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321964
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321966
- https://snyk.io/vuln/SNYK-PYTHON-NUMPY-2321970
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-5918878
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-6043904
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-6182918
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-6219984
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-6219986
- https://snyk.io/vuln/SNYK-PYTHON-PILLOW-6514866
- https://snyk.io/vuln/SNYK-PYTHON-REQUESTS-6928867
- https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-3180412
- https://snyk.io/vuln/SNYK-PYTHON-SETUPTOOLS-7448482
- https://snyk.io/vuln/SNYK-PYTHON-TORCH-6619806
- https://snyk.io/vuln/SNYK-PYTHON-TORCH-6649934
- https://snyk.io/vuln/SNYK-PYTHON-URLLIB3-7267250
- https://snyk.io/vuln/SNYK-PYTHON-WHEEL-3180413
* Update requirements.txt
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
---------
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: snyk-bot <snyk-bot@snyk.io> 7 天前
c5bb4087
* fix: requirements.txt to reduce vulnerabilities
The following vulnerabilities are fixed by pinning transitive dependencies:
- https://snyk.io/vuln/SNYK-PYTHON-TQDM-6807582
- https://snyk.io/vuln/SNYK-PYTHON-ZIPP-7430899
* Update requirements.txt
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
---------
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: snyk-bot <snyk-bot@snyk.io> 7 天前
所有评论(0)