【持续更新中】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.更多内容持续更新中,欢迎评论区补充。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序hbuilderx+uniapp+Android 新农村综合风貌旅游展示平台

目录 项目介绍支持以下技术栈:具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是:数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 小程序端…

索尼MDR-M1:超宽频的音频盛宴,打造沉浸式音乐体验

在音乐的世界里,每一次技术的突破都意味着全新的听觉体验。 索尼,作为音频技术的先锋,再次以其最新力作——MDR-M1封闭式监听耳机,引领了音乐界的新潮流。 这款耳机以其超宽频播放和卓越的隔音性能,为音乐爱好者和专…

多模态—图文匹配

可能最近大家已经发现了chatgpt可以根据自己的描述生成图片,其实这就是一个图文匹配的问题,可以理解为这是一个多模态的问题。 在模型训练时我们需要N个图片和N个文本对进行训练,文本通过text encoder形成文本语义向量,text enco…

【Python】Streamlit:为数据科学与机器学习打造的简易应用框架

Streamlit 是一个开源的 Python 库,专为数据科学家和机器学习开发者设计,旨在快速构建数据应用。通过简单的 Python 脚本,开发者无需掌握前端技术,即可将数据分析和模型结果转化为直观、交互式的 Web 应用。其简洁的 API 设计使得…

NVIDIA NVLink-C2C

NVIDIA NVLink-C2C 文章目录 前言一、介绍1. 用于定制芯片集成的超快芯片互连技术2. 构建半定制芯片设计3. 使用 NVLink-C2C 技术的产品 二、NVLink-C2C 技术优势1. 高带宽2. 低延迟3. 低功率和高密度4. 行业标准协议 前言 将 NVLink 扩展至芯片级集成 一、介绍 1. 用于定制芯…

软件设计师——数据结构

本博文所有内容来自于B站up主zst_2001 目录 时间复杂度 常规数据结构 链表 栈与队列 ​编辑 串 数组 树 卡特兰数: 平衡二叉树 哈夫曼 图 AOV 排序 顺序 折半 哈希 时间复杂度 常规数据结构 链表 栈与队列 串 找i位置前面的字符串&#xff0c…

Koa2+mongodb项目实战1(项目搭建)

前言 在正式开始之前,需要先知道用到的东西: koa:Koa 是一个基于 Node.js 的 Web 应用框架,非常适合开发API服务,可以与前端框架(如 Vue.js、React.js)结合使用,实现前后端分离的开…

【HTTP(3)】(状态码,https)

【认识状态码】 状态码最重要的目的,就是反馈给浏览器:这次请求是否成功,若失败,则出现失败原因 常见状态码: 200:OK,表示成功 404:Not Found,浏览器访问的资源在服务器上没有找到 403:Forbidden,访问被…

使用 Light Chaser 进行大屏数据可视化

引言 在当今数据驱动的世界中,数据可视化变得越来越重要。Light Chaser 是一款基于 React 技术栈的大屏数据可视化设计工具,通过简单的拖拽操作,你可以快速生成漂亮、美观的数据可视化大屏和看板。本文将介绍如何使用 Light Chaser 进行数据…

10款好用的开源 HarmonyOS 工具库

大家好,我是 V 哥,今天给大家分享10款好用的 HarmonyOS的工具库,在开发鸿蒙应用时可以用下,好用的工具可以简化代码,让你写出优雅的应用来。废话不多说,马上开整。 1. efTool efTool是一个功能丰富且易用…

【unity进阶知识6】Resources的使用,如何封装一个Resources资源管理器

文章目录 一、Unity资源加载的几种方式1、Inspector窗口拖拽2、Resources3、AssetBundle4、Addressables(可寻址资源系统)5、AssetDatabase 二、准备三、同步加载Resources资源1、Resources.Load同步加载单个资源1.1、基本加载1.2、加载指定类型的资源1.…

漆包线称重系统/自动称重/项目合作

万界星空科技漆包线行业称重系统实现自动称重的方式主要依赖于现代数字电子称重技术、计算机网络技术以及相关的软件系统的集成。以下是对该系统如何实现自动称重的详细解释: 一、硬件基础 称重设备: 系统采用高精度的电子秤作为称重设备,这…

Meta推出Movie Gen 旗下迄今最先进的视频生成AI模型

Meta 今天发布了 MovieGen 系列媒体基础AI模型,该模型可根据文本提示生成带声音的逼真视频。 MovieGen 系列包括两个主要模型: MovieGen Video 和 MovieGen Audio。 MovieGen Video 是一个具有 300 亿个参数的变换器模型,可根据单个文本提示生…

方法重载(Overload)

前言 在前面的学习中,我们学到了重写(Override),这里我们主要进行重载(Overload)的介绍,同时对重写和重载的区别进行分析。 1. 重载(Overload) #方法重载 在同一个类中定义多个同名但参数不同的方法。我们称方法与方法之间构成方法重载 在Java中&…

【linux进程】进程优先级命令行参数环境变量

目录 一,进程切换二,进程优先级1. 什么是优先级2. 权限 vs 优先级3. 为什么要有优先级4. 优先级的查看方式 三,命令行参数1. 什么是命令行参数2. 为什么要有命令行参数3. 是谁做的 四,环境变量1. 基本概念2. 常见环境变量3. 查看环…

针对线上消息积压的排查思路以及解决方案

一、背景 我们在日常工作中,经常会碰到线上告警,消息队列消息积压了,试想如果对消息的消费速率有要求的场景,消息积压一定会或多或少对自己本身的业务场景有影响,这里就针对消息积压的场景,谈谈具体的排查…

15分钟学 Python 第37天 :Python 爬虫入门(三)

Day 37 : Python爬虫入门大纲 章节1:Python爬虫概述 1.1 什么是爬虫? 网页爬虫(Web Crawler)是一种自动访问互联网上网页并提取数据的程序。爬虫的作用包括搜索引擎索引内容、市场调查、数据分析等。 1.2 爬虫的工作原理 发起…

Vue中使用ECharts实现热力图的详细教程

在数据可视化领域,热力图是一种非常直观的表现形式,它通过颜色深浅来展示数据分布情况。在Vue项目中,我们可以使用ECharts这一强大的图表库来实现热力图。下面我将详细介绍如何在Vue中使用ECharts实现热力图。效果如下图: 一、准备…

Python或R时偏移算法实现

🎯要点 计算单变量或多变量时序距离,使用欧几里得、曼哈顿等函数量化不同时序差异。量化生成时序之间接近度相似性矩阵。使用高尔距离和堪培拉距离等相似度测量。实现最小方差匹配算法,绘制步进模式的图形表示。其他语言包算法实现。 &…

vue3 + ts + cesium:绘制、更新圆 ellipse

本文主要实现基础的绘制圆形,并且可以通过拖动圆心更新圆的位置,拖动圆上的边缘点改变圆的半径。 实现效果: (1)单击鼠标左键开始绘制,确定圆的圆心,移动鼠标,改变圆的半径&#xff…