训练DAMO-YOLO(damoyolo_tinynasL25_S.py)

news2024/11/18 18:48:38

文章目录

  • 参考链接
  • 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

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复制到根目录下,然后运行就可以了

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

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

相关文章

Java生成四位数随机验证码

引言: 我们生活中登录的时候都要输入验证码,这些验证码是为了增加注册或者登录难度,减少被人用脚本疯狂登录注册导致的一系列危害,减少数据库的一些压力。 毕竟那些用脚本生成的账号都是垃圾账号 本次实践:生成这样的…

Spring Boot - 利用Resilience4j-RateLimiter进行流量控制和服务降级

文章目录 Resilience4j概述Resilience4j官方地址Resilience4j-RateLimiter微服务演示Payment processorPOM配置文件ServiceController Payment servicePOMModelServiceRestConfigController配置验证 探究 Rate Limiting请求三次 ,观察等待15秒连续访问6次 Resilienc…

mysql原理--undo日志1

1.事务回滚的需求 我们说过 事务 需要保证 原子性 ,也就是事务中的操作要么全部完成,要么什么也不做。但是偏偏有时候事务执行到一半会出现一些情况,比如: (1). 事务执行过程中可能遇到各种错误,比如服务器本身的错误&…

前端对接电子秤、扫码枪设备serialPort 串口使用教程

因为最近工作项目中用到了电子秤,需要对接电子秤设备。以前也没有对接过这种设备,当时也是一脸懵逼,脑袋空空。后来就去网上搜了一下前端怎么对接,然后就发现了SerialPort串口。 Serialport 官网地址:https://serialpo…

软件工程:黑盒测试等价分类法相关知识和多实例分析

目录 一、黑盒测试和等价分类法 1. 黑盒测试 2. 等价分类法 二、黑盒测试等价分类法实例分析 1. 工厂招工年龄测试 2. 规定电话号码测试 3. 八位微机测试 4. 三角形判断测试 一、黑盒测试和等价分类法 1. 黑盒测试 黑盒测试就是根据被测试程序功能来进行测试&#xf…

通过开源端点可见性改善网络安全响应

在当今复杂的数字环境中,企业内的许多不同端点(从数据中心的服务器到咖啡店的笔记本电脑)创建了巨大且多样化的攻击面。每个设备都存在网络安全威胁的机会,每个设备都有其独特的特征和复杂性。攻击者使用的多种攻击媒介不仅是一个…

【占用网络】FlashOcc:快速、易部署的占用预测模型

前言 FlashOcc是一个它只需2D卷积就能实现“占用预测模型”,具有快速、节约内存、易部署的特点。 它首先采用2D卷积提取图形信息,生成BEV特征。然后通过通道到高度变换,将BEV特征提升到3D空间特征。 对于常规的占用预测模型,将…

web前端算法简介之字典与哈希表

回顾 栈、队列 : 进、出 栈(Stack): 栈的操作主要包括: 队列(Queue): 队列的操作主要包括: 链表、数组 : 多个元素存储组成的 简述链表:数组&…

阶段十-分布式锁

5.1 节 为什么要使用分布式锁 锁是多线程代码中的概念,只有当多任务访问同一个互斥的共享资源时才需要。如下图: 在我们进行单机应用开发,涉及并发同步的时候,我们往往采用synchronized或者lock的方式来解决多线程间的代码同步问…

分布式任务调度平台XXL-JOB使用(二)

说明:之前总结过在CentOS系统里使用XXL-JOB。但在代码开发阶段,我们有时需要在本地环境测试定时任务代码,本文介绍如何在Windows系统使用XXL-JOB。 下载 (1)下载代码,解压打开 首先,去Github…

权责发生制和收付实现制

目录 一. 权责发生制(应记制)二. 收付实现制 \quad 一. 权责发生制(应记制) 应计制就是应该记入的意思 各项收入和费用的确认应当以“实际发生”(归属期)而不是以款项的实际收付作为记账的基础。 正是有会计期间假设,才有权责发生制和收付实…

逸学Docker【java工程师基础】3.1安装Jenkins

1.下载镜像 docker pull jenkins/jenkins:lts 2.运行容器 docker run -d -u root -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:lts 3.要启动名为 jenkins 的 Docker 容器 docker st…

【软件测试】学习笔记-性能测试的基本方法与应用领域

这篇文章探讨并发用户数、响应时间和系统吞吐量这三个指标之间的关系和约束,性能测试七种常用方法,以及四大应用领域。 由于性能测试是一个很宽泛的话题,所以不同的人对性能测试的看法也不完全一样,同样一种方法可能也会有不同的…

基于STM32的CMT液晶屏控制器驱动程序设计与优化

本文以STM32微控制器为基础,设计并优化了一个用于控制CMT液晶屏的驱动程序。在设计过程中,我们首先介绍了液晶屏的基本工作原理,包括CMT液晶屏的结构和信号传输机制。然后,我们详细讨论了STM32微控制器的GPIO、SPI和DMA模块的特性…

Invalid bound statement (not found)(xml文件创建问题)

这边大致讲一下我的经历,不想看的直接点目录去解决方法 今天照着老师视频学习,中间老师在使用动态SQL时,直接复制了一份,我想这么简单的一个,我直接从网上找内容创建一个好了,但是,但是没想到过…

书生·浦语大模型实战营-学习笔记3

目录 (3)基于 InternLM 和 LangChain 搭建你的知识库1. 大模型开发范式(RAG、Fine-tune)RAG微调 (传统自然语言处理的方法) 2. LangChain简介(RAG开发框架)3. 构建向量数据库4. 搭建知识库助手5. Web Demo部…

word无法插入方程式(方程式反灰)

word无法插入方程式(方程式反灰) 来自实测>插入方程式,反灰用不了>随便存在哪里,右键看属性:>发现真的是doc,得改成docx才可以:>打开原始档案,另存为word文件即可&#…

机器学习 | 多层感知机MLP

机器学习 | 多层感知机MLP 1. 实验目的 自行构造一个多层感知机,完成对某种类型的样本数据的分类(如图像、文本等),也可以对人工自行构造的二维平面超过3类数据点(或者其它标准数据集)进行分类。 2. 实验…

Java安装(可多版本共存)及IIntelliJ IDEA环境搭建汉化(保姆级教程!)

编程如画,我是panda! 这次给大家出一期JAVA安装以及IIntelliJ IDEA的安装教程 IIntelliJ IDEA分为社区版和专业版,两版的教程都有,小伙伴们根据需要自行选择使用 并且我会讲解一台计算机中多个版本JAVA JDK配置安装 前言 我最早接…

书生·浦语大模型实战营笔记(四)

Finetune模型微调 直接使用现成的大语言模型,在某些场景下效果不好,需要根据具体场景进行微调 增量预训练:投喂垂类领域知识 陈述形式,无问答,即只有assistant 指令跟随:system-user-assistant XTuner …