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

news2024/11/25 6:30:52

博主近来跑自己数据集需要对比试验,故选择了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.更多内容持续更新中,欢迎评论区补充。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2193507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从博士到院士,国家级人才荣誉称号一览

在中国的科技界,两院院士代表着学术成就的巅峰荣誉,享有终身荣耀,并且是科研人员梦寐以求的最高职业荣誉。除了院士头衔之外,国家和各部委还设立了一系列针对不同年龄段学术人才的国家级荣誉称号体系,旨在表彰各类优秀…

8.9K Star,开源自托管离线翻译引擎

Hi,骚年,我是大 G,公众号「GitHub 指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 在全球化的今天,跨语言交流已成为日常需求,然…

U3D游戏开发之中剧情系统的制作

今天我们来揭秘带有人物选项的剧情系统该如何制作。 半年前我接到了一个剧情系统的需求,本着能抄代码绝不自己动手的想法在B站上面找现成系统,大概看了一些内容,发现比较繁琐就直接自己动手写了。 目录 1 需求分析 2 梳理代码逻辑 3 代码书…

k8s 中存储之 NFS 卷

目录 1 NFS 卷的介绍 2 NFS 卷的实践操作 2.1 部署一台 NFS 共享主机 2.2 在所有k8s节点中安装nfs-utils 2.3 部署nfs卷 2.3.1 生成 pod 清单文件 2.3.2 修改 pod 清单文件增加 实现 NFS卷 挂载的 参数 2.3.3 声明签单文件并查看是否创建成功 2.3.4 在 NFS 服务器 创建默认发布…

[c语言]一句话讲清循环中break和continue的作用与区别

1.两者的作用 break和contuinue都只能在循环中使用,都用来停止循环。 2.两者的区别 break 在循环中只要遇到break,就直接永久终止当前循环,开始执行当前循环之外的代码。 continue 在循环中只要遇到continue,就结束本次循环&…

免费送源码:Java+ssm+JSP+Ajax SSM棕榈校园论坛的开发 计算机毕业设计原创定制

摘要 随着计算机科学技术的高速发展,计算机成了人们日常生活的必需品,从而也带动了一系列与此相关产业,是人们的生活发生了翻天覆地的变化,而网络化的出现也在改变着人们传统的生活方式,包括工作,学习,社交…

数据库软题6.1-关系模式-关系模式的各种键

关系模式的各种键 题1-由关系模式求候选键 1. 候选键唯一不冗余 对选项进行闭包运算,如果得到全部属性U,则为候选码 A:AC-ABC-ABCD B:AB-ABC-ABCD C:AE-ABE-ABCE -ABCDE-ABCDEH D:DE2. R的候选码可以从A1,A2,A3,A1A2,A1A3,A2A3,A1A2A3中选择&#xff…

Flutter String 按 ,。分割

在 Flutter 中,如果你想将一个字符串按特定的字符(例如中文逗号 , 和英文句号 .)进行分割,可以使用 Dart 语言的字符串处理功能。具体来说,你可以使用 split 方法,并传入一个正则表达式来匹配这…

CSS基础-常见属性(二)

6、CSS三大特性 6.1 层叠性 如果样式发生冲突,则按照优先级进行覆盖。 6.2 继承性 元素自动继承其父元素、祖先元素所设置的某些元素,优先继承较近的元素。 6.3 优先级 6.3.1 简单分级 1、内联样式2、ID选择器3、类选择器/属性选择器4、标签名选择器/…

数据结构之树(1)

课程:b站王道数据结构 5.1.1 树的定义和基本术语_哔哩哔哩_bilibili 写在前面:基础不牢,地动山摇。。 一、树 1、概念 树是n(n>0)个结点的有限集合,n0时,称为空树 非空树的特性 有且仅有一个根节点…

智能家居有哪些产品?生活中常见的人工智能有哪些?

智能家居有哪些产品? 1、智能照明设备类:智能开关、智能插座、灯控模块、智能空开、智能灯、无线开关。 2、家庭安防类:智能门锁、智能摄像机、智能猫眼、智能门铃。 3、智能传感器类:烟雾传感器、可燃气体传感器、水浸传感器、声光报警器…

CentOS7系统配置Yum环境

新安装完系统的服务器往往缺少我们常用的依赖包,故需要设置好yum源,方便软件安装,以下是CentOS7为例,系统安装后yum默认安装。 //备份之前的配置文件 mv /etc/yum.repos.d /etc/yum.repos.d.bak mkdir -p /etc/yum.repos.d 1…

鸿蒙开发之ArkUI 界面篇 十八 京东app登录界面实现

鸿蒙UI实现某东App登录界面,如下图鲜果,我们先分析整体架构是什么! 我们整体架构分析,分为区域1、2、3、4、5、6、7、8、9区域,下图: 8个区域的整体方向是垂直的,容器使用的是Column,区域1使用的是子容器Row,左边是Image,右边是Text,区域2是Image,区域3第一感觉是…

欧姆龙(Omron)协议解析

1. 协议概述    欧姆龙(Omron)是来自日本的知名电子和自控设备制造商,其中、小型PLC在国内市场有较高的占有率,有CJ、CM等系列。PLC可以支持Fins、Host link等协议进行通信。 支持以太网的欧姆龙PLC CPU、以太网通信模块根据型号的不同,一般…

dockertop提示Failed to fetch extensions

解决办法:重装dockertop 第一步:卸载当前的dockertop 如果卸载过程中存在AlibabaProtect的相关软件关不掉,那么参考这篇文章:卸载AlibabaProtect 第二步:删除C:\Program Files路径下的Docker文件夹 第三步&#xff1…

代码随想录Day 62|Floyd 算法精讲、A \* 算法精讲 (A star算法),题目:97. 小明逛公园、127. 骑士的攻击

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 图论part11Floyd 算法精讲题目:97. 小明逛公园解题思路: A \* 算法精讲 (A star算法)题目:127. 骑士的攻击问题描述算法选择解题思路C代…

什么是重卡充电桩?

有什么广告?没有广告,纯纯的介绍。 在政策与市场双重驱动下,充电桩市场已经开启加速模式,行业的火苗越烧越旺。同时,随着新能源重卡的广泛普及,重卡充电桩也迎来了新的发展机遇。 此种背景下 &#xff0c…

Pikachu-敏感信息泄露

直接访问页面,查看页面源码 如:返回了测试账号信息; 例如:返回服务端的信息

仿RabbitMQ实现消息队列三种主题的调试及源码

文章目录 开源仓库和项目上线广播交换模式下的测试直接交换模式下的测试主题交换模式下的测试 开源仓库和项目上线 本项目已开源到下面链接下的仓库当中 仿RabbitMQ实现消息队列 广播交换模式下的测试 消费者客户端 在进行不同测试下,消费者客户端只需要改变交换机…

【Blender Python】4.获取场景对象的几种方式

概述 有时候我们需要获取场景中已经添加或存在的对象。本节就总结在Blender Python中获取场景中对象的一些方法。 通过名称获取 py.data的objects()方法返回一个对象集合,可以使用键名或者下标形式获取具体的对象。 在默认新建的场景中,存在三个对象…