在进行YOLOv5训练时,训练结果出现如下图所示错误,显示P,R,和mAP等值等于0的问题

 可以观察到其实训练过程中就有显示P  R  mAP 为0的情况,这样的情况就不用再继续训练了,因为没有意义,训练出来准确率也是为零的,相当于浪费时间。需要想办法解决这个问题了。

Epoch   gpu_mem      box       obj       cls    labels  img_size
0/499     1.76G  	 nan   	   nan       nan      25       640: 100%|██████████| 140/140 [04:19<00:00,  1.85s/it]                                          
       Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95: 100%|██████████| 8/8 [00:05<00:00,  1.50it/s]                              
        all         63         0            0          0          0          0

 看了网上很多教程,首先我把cuda的版本从11.3改成了10.2版本。更改方式

首先打开pythorch官网,这里红色框框内显示CUDA 10.2没有下载链接,这个时候点击蓝色框框内的链接,进入新页面,下拉找到下图二

 

 复制上图的链接,注意不要复制到  -c  pytorch,不然就是国内源,下载会非常慢。

下载完成之后就可以运行train程序了,这个时候一般不会出现什么问题了,但是由于我的操作失误又出现了一个问题,P  R  mAP还是显示为零。这个时候我检查了自己的数据集,发现我的数据集标签只有train文件没有val文件。原来最关键的问题在这里,所以大家检查一下自己的数据集格式对不对,train文件和val文件都要是txt格式才可以。把这个问题解决就可以顺利运行程序了。

 

 训练结束就有了下面的样子。可以作为参考。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐