【持续更新中】MMDetection3训练自己的数据集常见报错解决

博主近来跑自己数据集需要对比试验,故选择了MMDetection3这一算法整合详细的框架,遇到了较多问题在此处留作记录,若你也有相应的问题可以在评论区提出与解决方法。会持续更新,同时欢迎批评指正。

0.ModuleNotFoundError: No module named 'xxx'

问题描述:在任意代码运行环节出现

解决方法:运行命令pip install xxx或conda install xxx

1.ValueError: need at least one array to concatenate

问题描述:博主拉取项目后,首先将项目中的类别修改为自己数据集的类别,修改了以下文件:

mmdet\evaluation\functional.py下的class_names.py的def coco_classes()和def voc_classes()的return中的内容改为自己数据集类别

mmdet\datasets\coco.py的class CocoDataset(BaseDetDataset):的   METAINFO = {}中的'classes':类别改为自己数据集的类别

mmdet\datasets\voc.py的class VOCDataset(XMLDataset):的   METAINFO = {}中的'classes':类别改为自己数据集的类别

然后在命令行运行

python setup.py install build

遇到该报错。

解决方式:在自己的本地环境下尤其注意类别需要改在:./anaconda3/envs/(你的环境名称)/Lib/site-packages/mmdet/dataset/coco.py中的
'classes':('你的类别名称',)即可解决。

2.FileNotFoundError: [Errno 2] No such file or directory:'data/coco/annotations/instances_val2017.json'

问题描述:运行tools/test.py、tools/analysis_tools/confusion_matrix.py出现该错误。

解决方式:把test.py拉到data也就是你的coco数据集所在文件夹的同一根目录下。

即如下结构形式:

mmdetection-main

——data

————coco

——test.py

当然也可以把你的数据集文件夹data直接拉到.py所在文件夹。

3.AssertionError: None
10/01 02:01:57 - mmengine - INFO - loss become infinite or NaN!

问题描述:训练过程中遇到了loss上升到无限大的情况。

解决方式:将optimizer=dict(type='SGD', lr=2e-3, momentum=0.9, weight_decay=5e-4))的lr改成2e-4后解决,也可以改成别的值,比如你对默认的学习率×0.1等慢慢调。调参不明白的可见我该文章:【纯干货级教程】深度学习根据loss曲线进行分析调参-CSDN博客

4.PermissionError: [Errno 13] Permission denied: 'D:/dataset12\\images\\test'

问题描述:在转换数据集格式yolo转为COCO的时候遇到

解决方法:将你的yolo格式下的train和val文件夹删掉,只保留标签和图片不分训练集和测试集。

结构如下所示:

yolo数据集

——images
————所有图片文件
——labels
————所有标签文件
——classes.txt

5.TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.

问题描述:我报错的位置在D:\anaconda3\envs\我的虚拟环境名称\lib\site-packages\torch\_tensor.py"的757行,

解决方法:将return self.numpy()改为

return self.cpu().numpy()

6.AttributeError: 'SSDHead' object has no attribute 'loss_cls'

问题描述:运行ssd300_coco.py配置文件进行test时出错

解决方法:在mmdet/models/dense_heads/ssd_head.py的SSDHead 类中添加 loss_cls 属性。

也就是在该文件的109行加了self.loss_cls = False

7.FileNotFoundError: [Errno 2] No such file or directory: 'data/coco/annotations/instances_val2017.json'

问题描述:如题

解决方法:确认你的目录文件是否是coco格式,如下

data
——coco
————annotations
——————instances_train2017.json
——————instances_val2017.json
——————instances_test2017.json
————train2017
——————图片文件
————val2017
——————图片文件
————test2017
——————图片文件

8.AttributeError: 'pfullmem' object has no attribute 'pss'

问题描述:在测试FPS过程中报如上错

解决方法:把 "D:\anaconda3\envs\你的虚拟环境名称\lib\site-packages\mmdet\utils\benchmark.py"53行的pss改为rss,如图

9.更多内容持续更新中,欢迎评论区补充。

更多文章产出中,主打简洁和准确,欢迎关注我,共同探讨!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值