训练DAMO-YOLO(damoyolo_tinynasL25_S.py)

文章目录

  • 参考链接
  • 1 准备数据
    • 1.1 转为COCO格式
    • 1.2 指明数据路径
  • 2 设置训练配置文件,在configs/damoyolo_tinynasL25_S.py进行如下两块修改
    • 2.1 关于训练参数的设置
    • 2.2 根据自己数据集设置
  • 3 开始训练
  • 4 调用tools/eval.py进行测试
  • 5 训练时可能遇到的报错
    • 5.1 RuntimeError: Distributed package doesn't have NCCL built in
    • 5.2 ModuleNotFoundError: No module named 'damo.base_models.core'

参考链接

  • 官方代码:DAMO-YOLO
  • DAMO-YOLO最强操作教程.我的这博文不算很详细,可以去看看这篇博文的视频链接。但我的博文也就是少了配置虚拟环境的步骤,其实如果已经配置好了YOLO相关的虚拟环境,跟着我来应该是能跑通的

1 准备数据

1.1 转为COCO格式

  • 参考我的另一篇博客:将YOLO数据集转成COCO格式,单个文件夹转为单个json文件,例如…/images/train转为instance_train.json

1.2 指明数据路径

damo/config/paths_catalog.py进行修改

在这里插入图片描述

2 设置训练配置文件,在configs/damoyolo_tinynasL25_S.py进行如下两块修改

configs/damoyolo_tinynasL25_S.py进行如下两块修改

2.1 关于训练参数的设置

右侧的base.py在damo/config/base.py

在这里插入图片描述

        self.train.batch_size = 2   # 训练时的batchsize
        self.train.total_epochs = 300   # 训练的总轮数
        # self.train.finetune_path = ''   # 如果要加上预训练权重,就下载了然后指明位置
        self.test.batch_size = 4    # 是训练时候的2倍,但是我在想在训练完之后进行测试时,是不是应该改为1
        self.miscs.num_workers = 0  # windows下设置为0
        self.miscs.output_dir = './workdirs'    # 训练完后保存的目录
        self.miscs.exp_name = 'DAMO-YOLOs'      # 自定义文件名

2.2 根据自己数据集设置

在这里插入图片描述

3 开始训练

python -m torch.distributed.launch --nproc_per_node=1 tools/train.py -f configs/damoyolo_tinynasL25_S.py
  • 可以像下图一样,直接设置好配置文件的绝对路径,肯定不会出现找不到配置文件的错误

在这里插入图片描述

  • 这个-m torch.distributed.launch --nproc_per_node=1是用来设置多卡训练的,必须要带上才能正常运行起来,因此我在调试的时候多有不便,亲测这个博客很有用,如果有需要可以参考:Pycharm 调试debug torch.distributed.launch
    • 兴许这个博客也能有用,暂存一下:DAMOYOLO windows 单卡训练

4 调用tools/eval.py进行测试

官方示例:

python -m torch.distributed.launch --nproc_per_node=1 tools/eval.py -f configs/damoyolo_tinynasL25_S.py --ckpt /path/to/your/damoyolo_tinynasL25_S.pth
  • 感觉DAMO-YOLO跟YOLOX的代码很像,所以在eval.py中还设置了--conf 0.001 --nms 0.5 --tsize 640,另外,验证时batchsize应该设置为1,因此在configs/damoyolo_tinynasL25_S.py中设置self.test.batch_size = 1(但是测试完之后,就改回为self.train.batch_size的两倍吧)

在这里插入图片描述

  • 直接按照上面命令运行的话,是会对val数据集进行验证,所以如果需要对test数据集进行验证的话,就按照下图在damo/config/paths_catalog.py里进行更改

在这里插入图片描述

在这里插入图片描述

5 训练时可能遇到的报错

5.1 RuntimeError: Distributed package doesn’t have NCCL built in

解决方法:会出现这个错,是因为在Windows上跑的,那么只要在tools/train.py中定位到backend='nccl',然后把nccl改为gloo即可

5.2 ModuleNotFoundError: No module named ‘damo.base_models.core’

解决方法:会出现这报错,是因为程序没有根据找到damo包的位置,其实就是代码写得有点奇怪然后没有找到路径。只要把tools/train.py复制到根目录下,然后运行就可以了

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

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

相关文章

运维工具之iptables命令

运维工具之iptables命令 1.iptables防火墙介绍 ​ iptables其实并不是真正的防火墙,我们可以理解成一个客户端代理,用户通过 IPTables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才…

c语言 编译与链接

编译与链接 翻译环境和执行环境翻译环境1.1预编译1.2编译1.3汇编(ASM)2.链接 执行环境最后给大家附上一张关于本节知识内容的图供大家更好理解~ ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/522d488885ba44d99aa504d6b21c88d5.png) &…

LLaMa2 Chat gpt 大模型本地部署初体验

一直想在自己电脑或者测试环境随便找台服务器尝试部署一下“大模型”,但“大模型”对于内存和GPU的要求令人望而却步,层出不穷的各种术语也令人困惑,有点难以下手。 经过一段时间,在百度千帆大模型平台、讯飞星火大模型平台、魔搭…

【期末考试】网络综合复习宝典

相关链接 网络复习思维导图(HCIP)https://www.edrawsoft.cn/viewer/public/s/038e2370897928 详述循环冗余校验CRC码https://blog.csdn.net/liht_1634/article/details/124328005?app_version6.2.6&codeapp_1562916241&csdn_share_tail%7B%22…

【送书活动七期】CMeet系列 技术生态沙龙:技术人职业交流会·杭州场-转鸿蒙 对应用开发来说是否是职业发展新机会

CSDN致力于促进城市区域内尖端新兴技术开发者交流,提供开放自由的切磋平台。在近期热议的话题中,“华为鸿蒙系统不再兼容安卓应用”的消息成了程序员们广泛关注并引发思考的问题。 因此便有了我们此次的活动探讨议题! 目录 题外话开场简单介绍活动主办方介绍活动话题讨论升职加…

IDEA连接Github⭐️使用Git工具上传本地文件到远程仓库

环境准备 已安装IDEA开发工具,Git版本管理工具,已注册GitHub账号 需要先准备好这些环境,可以自行搜索教程,下面的安装是基于这里的环境上操作的 目录 一、需要提供SSH公钥 ​二、Github配置SSH公钥 ​三、IDEA配置连接 四、连…

C++ 多条件比较的几种实现方式

文章目录 1 sort()使用自定义比较器1.1 在类内部定义比较器 -- 声明为静态成员函数1.2 在函数内部定义比较器 -- lamda表达式1.3 全局函数比较器 2 重载运算符<2.1 在结构体中重载运算符<2.2 在类中重载运算符< 3 重写仿函数bool operator()4 使用pair排序5 priority_…

基于Mapbox的Mvt矢量瓦片集成实践

目录 前言 一、数据说明 1、基本数据 2、属性数据 二、Mapbox集成Mvt矢量瓦片 1、关于访问令牌 2、定义html 3、初始地图 4、加载矢量瓦片 5、效果展示 总结 前言 熟悉矢量瓦片的朋友一定知道&#xff0c;在Webgis当中&#xff0c;矢量瓦片的格式除了pbf的格式&#x…

Mysql 安装通过mysql installer安装+配置环境+连接可视化工具

注意&#xff1a;不适合纯小白&#xff0c;小白建议移步别的大佬MySQL详细安装教程 目录 注意&#xff1a;不适合纯小白&#xff0c;小白建议移步别的大佬MySQL详细安装教程 前言 准备工作 一、Mysql下载 二、MySQL installer 安装以及系统环境配置 三、检验MySQL 四、可…

CleanMyMac X .4.14.7如何清理 Mac 系统?

细心的用户发现苹果Mac电脑越用越慢&#xff0c;其实这种情况是正常的&#xff0c;mac电脑用久了会产生很多的缓存文件&#xff0c;如果不及时清理会影响运行速度。Mac系统在使用过程中都会产生大量系统垃圾&#xff0c;如不需要的系统语言安装包&#xff0c;视频网站缓存文件&…

宝塔发布网站问题汇总和记录

1、添加网站站点后打不开 解决办法&#xff0c;关闭防跨站攻击2 2、laravel项目部署到linux的时候出现The stream or file "/home/www/storage/logs/laravel.log" could not be opened in append mode 给目录加权限 chmod -R 777 storage 3、Class "Redis"…

交友系统程序开发,前后端源码交付,允许二开,UI配色新颖,APP小程序H5随心搭配!

在开发设计与测试阶段&#xff0c;主要包括了程序开发、测试和上线运营等环节。根据产品经理确定的功能需求&#xff0c;开发团队开始进行具体的编程和开发工作。这个过程中需要考虑到不同设备、不同系统和不同版本的需求&#xff0c;确保软件可以在不同平台上稳定运行。 测试是…

在线录屏-通过Web API接口轻松实现录屏

在线录屏是指在互联网上进行屏幕录制的过程。它允许用户通过网络连接&#xff0c;将自己的屏幕活动记录下来&#xff0c;并可以在需要时进行播放、共享或存档。在线录屏常用于教育、培训、演示、游戏等场景&#xff0c;可以帮助用户展示操作步骤、解决问题、分享经验等。通常&a…

MySQL运维篇(三)分库分表

一、介绍 1. 问题分析 随着互联网及移动互联网的发展&#xff0c;应用系统的数据量也是成指数式增长&#xff0c;若采用单数据库进行数据存储&#xff0c;存在以下 性能瓶颈&#xff1a; &#xff08;1&#xff09;IO瓶颈&#xff1a;热点数据太多&#xff0c;数据库缓存不足&…

Redis的事务

一、Redis中事务的定义 1) Redis事务是一个单独的隔离操作&#xff1a;事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中&#xff0c;不会被其他客户端发送来的命令请求所打断 2) Redis事务的主要作用就是串联多个命令防止别的命令插队。 二、multi 、exe…

高精度算法笔记·····························

目录 加法 减法 乘法 除法 高精度加法的步骤&#xff1a; 1.高精度数字利用字符串读入 2.把字符串翻转存入两个整型数组A、B 3.从低位到高位&#xff0c;逐位求和&#xff0c;进位&#xff0c;存余 4.把数组C从高位到低位依次输出 1.2为准备 vector<int> A, B, …

vite 打包优化

✨专栏介绍 在当今数字化时代&#xff0c;Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序&#xff0c;就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术&#xff0c;以及各种框架、库和工具…

消息中间件面试题

目录 一.为什么使用消息队列 二.RabbitMQ 1.RabbitMQ如何保证消息不丢失 2.RabbitMQ消息的重复消费问题 3.RabbitMQ延迟队列 4.RabbitMQ消息堆积 5.RabbitMQ高可用机制 三.Kafka 1.Kafka如何保证消息不丢失 2.Kafka如何保证消费消息的顺序性 3.Kafka高可用机制 4.Ka…

GitLab Runner 实现项目 CI/CD 发布

Gitlab Runner简介 Gitlab实现CICD的方式有很多&#xff0c;比如通过Jenkins&#xff0c;通过Gitlab Runner等&#xff0c;今天主要介绍后者。Gitlab在安装的时候&#xff0c;就默认包含了Gitlab CI的能力&#xff0c;但是该能力只是用于协调作业&#xff0c;并不能真的去执行…

PLSQL去除一个字符串中的数字

PLSQL去除一个字符串中的数字 SQL Select regexp_replace(abc1234ABC678aaad590AAA, [0-9], ) As 去数字后From dual;效果