MMYOLO调试RTMDet--小数据集split_ss_dota_200

2024-04-11 23:44

本文主要是介绍MMYOLO调试RTMDet--小数据集split_ss_dota_200,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

用MMYOLO调试旋转目标检测时需要用到dota数据集,根据MMYOLO的官方教程,dota数据集经过处理后变为split_ss_dota,但是该数据集还是很大,对于一些配置比较低的机器要调试比较麻烦,所以这里针对该数据集,挑选了训练集200张图片,测试集30张,便于调试算法。

小数据集在本篇博客配套资源包💐

1. MMYOLO及依赖库的版本

版本号
mmyolo0.6.0
mmengine0.10.3
mmcv2.0.1
mmdet3.0.0
mmcls1.0.0.rc6

2. 一键软链接上面的包:

首先将上面的包,gitclone到mmyolo同级目录:
在这里插入图片描述

cd mmyolo

文件夹的名字可能不同,需要根据自己的名字修改👇。

ln -s ../mmengine/mmengine/ mmengine && ln -s ../mmcv/mmcv/ mmcv && ln -s ../mmdetection-3.0.0/mmdet/ mmdet && ln -s ../mmrotate-1.0.0rc1/mmrotate/ mmrotate

配置文件更改

博主用到的配置文件是rtmdet-r_s_fast_1xb8-36e_dota.py,以这个为例,下面只给出需要更改的部分。

1. mmyolo/configs/rtmdet/rotated/rtmdet-r_l_syncbn_fast_2xb4-36e_dota.py

# ========================Frequently modified parameters======================
# -----data related-----
# data_root = 'data/split_ss_dota/'
data_root = '/home/hhh/dataset/ss_dota_200/'
train_batch_size_per_gpu = 2 # 8  这个其实可以不改,在下面哪个文件改就行
# Worker to pre-fetch data for each single GPU during training
train_num_workers = 0 # 8
# persistent_workers must be False if num_workers is 0.
persistent_workers = False # True

2. mmyolo/configs/rtmdet/rotated/rtmdet-r_s_fast_1xb8-36e_dota.py

# Batch size of a single GPU during training
train_batch_size_per_gpu = 2

调试指令

conda activate mmyolo
cd mmyolo
python tools/train.py /home/hhh/pyproject/mmyolo/configs/rtmdet/rotated/rtmdet-r_s_fast_1xb8-36e_dota.py

查看配置文件是否修改成功

python tools/misc/print_config.py configs/rtmdet/rotated/rtmdet-r_s_fast_1xb8-36e_dota.py

在这里插入图片描述

自己编译MMCV

注意:如果机器配置低,建议关闭其他软件,只开一个终端进行编译

# 我是直接去mmcv官网,releases找到自己想要的版本直接下载的
git clone -b 2.x git@github.com:open-mmlab/mmcv.git cd mmcvconda activate mmyolo# 安装 ninja 和 psutil 以加快编译速度
pip install -r requirements/optional.txt -i https://pypi.tuna.tsinghua.edu.cn/simple# 仅仅编译,不安装
MMCV_WITH_OPS=1 python setup.py build_ext --inplace# 建立软链接
cd ../mmyolo
ln -s ../mmcv/mmcv mmcv

编译成功后会生成一个_ext文件,这个文件很重要,如果没有的话调试时会报错:
在这里插入图片描述

参考

MMYOLO 实用类第一期:OpenMMLab 2.0 源码阅读和调试「必备」技巧

这篇关于MMYOLO调试RTMDet--小数据集split_ss_dota_200的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/895498

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核