当前位置: 首页 > news >正文

训练YOLOv9-S(注意:官方还没有提供YOLOv9-S的网络,我这是根据网络博客进行的步骤,按照0.33、0.50比例调整网络大小,参数量15.60M,计算量67.7GFLOPs)

文章目录

  • 1、自己动手制造一个YOLOv9-S网络结构
    • 1.1 改前改后的网络结构(参数量、计算量)对比
    • 1.2 一些发现,YOLOv9代码打印的参数量计算量和Github上提供的并不一致,甚至yolov9-c.yaml代码打印出来是Github的两倍
    • 1.3 开始创造YOLOv9-S
  • 2、开始训练
  • 3、验证
    • 3.1 修改val.py中的以下参数
    • 3.2 命令验证

1、自己动手制造一个YOLOv9-S网络结构

  • 重点参考的链接:YOLOv9改进 | 提供YOLOv9全系列支持YOLOv9n、YOLOv9s、V9m、V9l、V9x的修改方式(全网独家首发)

1.1 改前改后的网络结构(参数量、计算量)对比

改前的yolov9.yaml参数量58.35M,计算量267.1GFLOPs

改后的yolov9-S.yaml参数量15.60M,计算量67.7GFLOPs

  • 这是修改调用的yolo.py测试的yolov9.yaml的打印网络情况,包含参数量、计算量

在这里插入图片描述

  • 这是修改调用的yolo.py测试的yolov9-S-lwd.yaml的打印网络情况,包含参数量、计算量

在这里插入图片描述

1.2 一些发现,YOLOv9代码打印的参数量计算量和Github上提供的并不一致,甚至yolov9-c.yaml代码打印出来是Github的两倍

在这里插入图片描述

1.3 开始创造YOLOv9-S

  1. models/yolo.py文件中,Ctrl+F定位到args = [c1, c2, *args[1:]],然后再如下位置添加代码

在这里插入图片描述

            # --------------------------添加的代码--------------------------- #if m in (RepNCSPELAN4,):args[1] = make_divisible(args[1] * gw, 8)args[2] = make_divisible(args[2] * gw, 8)args[3] = max(round(args[3] * gd), 1) if n > 1 else n       # --------------------------添加的代码--------------------------- #
  1. 还是在models/yolo.py中,定位到elif m is CBLinear,然后做如下更改

在这里插入图片描述

            c2 = [int(x * gw) for x in args[0]]
  1. 修改模型配置文件:直接拷贝models/detect/yolov9.yaml然后重命名为yolov9-S.yaml,并做以下更改

在这里插入图片描述

2、开始训练

根据需求修改train.py中的以下参数:

在这里插入图片描述

需要注意的是,这里只能写成这样,因为官方只给了这一个超参数设置文件:

在这里插入图片描述

键入以下命令开始训练:

python train.py --name yolov9-S

在这里插入图片描述

报错了

在这里插入图片描述

⭐然后就根据这个博客yolov9训练自己的数据集+验证+报错修改里面参考的YOLOV9保姆级教程,在utils/loss_tal.py中进行了如下修改:

在这里插入图片描述

Okay!开始训练,坐等结果~

在这里插入图片描述

保姆级的大佬真的好啊,给我的回答很详细,贴上来!

在这里插入图片描述

3、验证

3.1 修改val.py中的以下参数

在这里插入图片描述

另外为了多显示几位精度,在val.py中进行如下更改:

在这里插入图片描述

3.2 命令验证

python val.py --name yolov9-S

报错:AttributeError: 'list' object has no attribute 'device'

在这里插入图片描述

解决方案:

在这里插入图片描述

验证结果:

在这里插入图片描述

相关文章:

训练YOLOv9-S(注意:官方还没有提供YOLOv9-S的网络,我这是根据网络博客进行的步骤,按照0.33、0.50比例调整网络大小,参数量15.60M,计算量67.7GFLOPs)

文章目录 1、自己动手制造一个YOLOv9-S网络结构1.1 改前改后的网络结构(参数量、计算量)对比1.2 一些发现,YOLOv9代码打印的参数量计算量和Github上提供的并不一致,甚至yolov9-c.yaml代码打印出来是Github的两倍1.3 开始创造YOLOv…...

视觉检测实战项目——九点标定

本文介绍九点标定方法 已知 9 个点的图像坐标和对应的机械坐标,直接计算转换矩阵,核心原理即最小二乘拟合 {𝑥′=𝑎𝑥+𝑏𝑦+𝑐𝑦′=𝑎′𝑥+𝑏′𝑦+𝑐′ [𝑥1𝑦11𝑥2𝑦21⋮⋮⋮𝑥9𝑦91][𝑎𝑎′𝑏𝑏′𝑐𝑐′]=[𝑥1′𝑦…...

android git提交代码命令以及常见命令的使用

安装Git Ubuntu: sudo apt-get install git-core创建代码仓库: 配置身份: git config --global user.name "Tony" git confit --global user.email "tonygmail.com"查看身份: git config --global user.…...

类图的六大关系

类图中的六大关系包括:继承关系、实现关系、关联关系、聚合关系、组合关系和依赖关系。 1. 继承关系 继承是一种类与类之间的关系,表示一种泛化和特化的关系。子类继承父类的特性和行为。 class Animal {void eat() {System.out.println("This an…...

家政项目day2 需求分析(模拟入职后熟悉业务流程)

目录 1 项目主体介绍1.1 项目背景1.2 运营模式1.3 项目业务流程 2 运营端需求2.1 服务类型管理2.2 服务项目(服务)管理2.3 区域管理2.4 区域服务管理2.5 相关数据库表的管理2.6 设计工程结构2.7 测试接口(接口断点查看业务代码) 3…...

面试总结之:socket线路切换

"socket线路切换"通常指的是在网络通信过程中,根据当前网络状态或策略来动态更换数据传输路径的技术。这种技术可以提高通信的可靠性和性能。 在实际应用中,线路切换可能涉及到多种技术,例如: 负载均衡:根据每条路径的当前负载情况,动态地选择一条较为空闲的路…...

002 递归评论 mongodb websocket消息推送

文章目录 商品评论CommentController.javaComment.javaCommentServiceImpl.javaCommentRepository.javaCommentService.javaWebSocketConfig.javaWebSocketProcess.javaapplication.yamlproductReview.htmlindex.htmlindex.jsindex.css 订单评论EvaluateMapper.xmlEvaluateMapp…...

高开高走的续作,可不止《庆余年2》

说起最近霸屏的影视剧,莫过于《庆余年2》。火爆全网的讨论度总归是没有辜负观众们五年的等待,在五月的影视市场独占鳌头已成定局。张若昀、陈道明、李沁等一众演员稳定发挥,剧情节奏随着故事发展渐入佳境,评分一路高涨。 对影视作…...

uniapp android使用uni.chooseLocation,app云打包后,定位地址列表一直在加载中

复现BUG 1、自己生成一个证书 参考生成证书流程 2、使用刚生成证书的SHA1 ,重新创建一个高德key 高德开放平台地址 3、打包(打包的包名要与高德申请key所填的包名一致)...

详解http协议

什么是HTTP协议 定义 Http协议即超文本传送协议 (HTTP-Hypertext transfer protocol) 。 它定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向&am…...

台湾省军事演习路径规划:A*算法在复杂地形中的应用

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…...

OpenHarmony鸿蒙软总线使用mbedtls数据加密详解

OpenHarmony鸿蒙软总线子系统中使用了多种的加密技术,本篇介绍调用mbedtls的数据加密。 调用mbedtls加密的源码位于: foundation/communication/dsoftbus/adapter/common/mbedtls/softbus_adapter_crypto.c 这个源码单元,调用mbedTLS库实现了各种加密功能,包括AES-GCM加密…...

【JavaEE】Servlet

文章目录 一、Servlet 是什么二、如何创建Servlet程序1、创建项目2、引入依赖3、创建目录4、编写代码5、打包程序6、部署程序7、验证程序 一、Servlet 是什么 二、如何创建Servlet程序 1、创建项目 2、引入依赖 Maven 项目创建完后,会自动生成一个 pom.xml 的文…...

SpringBoot——整合Redis

目录 Redis 创建Commodity表 启动MySQL和Redis 新建一个SpringBoot项目 pom.xml application.properties Commodity实体类 ComMapper接口 ComService业务层接口 ComServiceImpl业务接口的实现类 ComController控制器 RedisConfig配置类 SpringbootRdisApplication启…...

2024全新Langchain大模型AI应用与多智能体实战开发

2024全新Langchain大模型AI应用与多智能体实战开发 LangChain 就是一个 LLM 编程框架,你想开发一个基于 LLM 应用,需要什么组件它都有,直接使用就行;甚至针对常规的应用流程,它利用链(LangChain中Chain的由来)这个概念…...

【JavaEE 初阶(十)】JVM

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多进阶知识 目录 1.前言2.JVM内存区域划分3.类加载3.1双亲委派模型 4.垃圾回收(GC&#xff0…...

【Flutter】AspectRatio组件Card组件按钮组件Wrap组件

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Flutter学习 🌠 首发时间:2024年5月25日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾 目…...

【IDEA软件应用篇】IDEA基础开发设置和开发快捷键

IDEA是一种集成开发环境,可以运行java代码。 本篇文章你将收获到下面的知识: (1)IDEA如何设置字体大小快捷键 (2)如何解决每次进IDEA时,进去的页面都是上次使用完时的那个页面 (3&am…...

机器学习--数学部分笔记

前言 因为周三要考试,所以数学部分写一下笔记 正文 随机事件和随机实验 条件概率 • 在已知事件 𝐵 发生的条件下,事件𝐴发生的概率称为事件 𝐴 的条件概率,记为𝑃(𝐴|𝐵) 全概率…...

基于springboot的在线宠物用品交易网站源码数据库

基于springboot的在线宠物用品交易网站源码数据库 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了在线宠物用品交易网站的开发全过程。通过分析在线宠物用品交易网站管理的不足,创建了一个计算机管理在…...

不止于配置:用Horizon UAG 21.11打造安全外网访问,别忘了这些加固设置

超越基础配置:Horizon UAG 21.11安全加固全指南 在虚拟桌面架构中,统一接入网关(UAG)作为内外网流量的安全屏障,其配置合理性直接影响整体架构的安全性。许多管理员在完成UAG基础部署后,往往忽略了更深层次…...

效率提升:用快马AI一键生成医院预约系统的核心排班管理代码

医院预约系统开发笔记:如何用AI快速搞定排班管理模块 最近在开发一个医院预约系统,发现排班管理模块特别费时间。传统的开发方式需要手动编写大量重复性代码,从数据库设计到API接口,再到各种业务逻辑校验,一个完整的排…...

告别手动复制!用这个BAT脚本一键导出文件夹所有文件名到Excel

告别手动复制!用这个BAT脚本一键导出文件夹所有文件名到Excel 整理文件清单是许多职场人士的日常痛点。想象一下:你刚接手一个包含数百个设计稿的文件夹,领导要求半小时内提交完整的文件清单;或者你需要将一个项目的所有代码文件整…...

3个秘诀彻底解决机械键盘连击问题:Keyboard Chatter Blocker全攻略

3个秘诀彻底解决机械键盘连击问题:Keyboard Chatter Blocker全攻略 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 机械键盘…...

DAMO-YOLO智能视觉系统作品集:多场景零售货架检测效果惊艳展示

DAMO-YOLO智能视觉系统作品集:多场景零售货架检测效果惊艳展示 1. 零售视觉检测的新标杆 走进现代零售空间,商品陈列的艺术背后隐藏着复杂的运营挑战。传统的人工巡检方式已经难以满足快节奏零售环境的需求,这正是DAMO-YOLO智能视觉系统大放…...

大模型部署成本优化:面向测试从业者的云服务省钱技巧

随着大模型在自动化测试、缺陷智能分析、测试用例生成等领域的应用日益深入,其部署与调用成本已成为测试团队必须面对的核心挑战。高昂的GPU算力费用、未被充分利用的资源以及复杂的定价模型,都可能使技术创新的预算捉襟见肘。一、理解成本构成&#xff…...

零基础玩转像素心智:手把手教你用情绪解码器分析用户评论

零基础玩转像素心智:手把手教你用情绪解码器分析用户评论 1. 认识像素心智情绪解码器 1.1 什么是情绪解码器 像素心智情绪解码器(Pixel Mind Decoder)是一款基于M2LOrder核心引擎构建的AI情绪识别工具。它将复杂的自然语言处理技术封装在一个充满复古游戏风格的1…...

当前主流的AI编程助手Trae、Cursor、通义灵码功能对比分析

Trae、Cursor和通义灵码是当前主流的AI编程助手,它们在功能定位、技术架构和使用体验上各有特色。以下是三款工具的详细对比分析: Trae详细操作手册和常见问题解决,请访问http://www.zrscsoft.com/sitepic/12166.html 一、核心功能对比 功能…...

ssm+java2026年毕设蔬果批发网络平台【源码+论文】

本系统(程序源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于农产品电商交易模式的研究,现有研究主要以综合电商平台(如淘宝、京东)的农产品销售模式…...

像素剧本圣殿实战教程:用Creativity Slider调控剧本风格的详细方法

像素剧本圣殿实战教程:用Creativity Slider调控剧本风格的详细方法 1. 工具介绍与核心功能 像素剧本圣殿(Pixel Script Temple)是一款专为剧本创作者设计的AI辅助工具,基于Qwen2.5-14B-Instruct大模型深度优化。它最大的特色是将…...