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

【YOLOv9】训练模型权重 YOLOv9.pt 重新参数化轻量转为 YOLOv9-converted.pt

【YOLOv9】训练模型权重 YOLOv9.pt 重新参数化轻量转为 YOLOv9-converted.pt

  • 1. 模型权重准备
  • 2. 模型重新参数化
    • 2.1 文件准备
    • 2.2 参数修改
    • 2.3 重新参数化过程
  • 3. 重新参数化后模型推理
    • 3.1 推理超参数配置
    • 3.2 模型推理及对比
  • 4. onnx 模型导出(补充内容)
    • 4.1 超参数配置
    • 4.2 模型导出
    • 4.3 onnx 推理


Code 链接: YOLOV9
Paper 链接: YOLOV9: Learning What You Want to Learn Using Programmable Gradient Information

1. 模型权重准备

  • 可以参考另一篇博客 【模型复现】自制数据集上复现刚发布的最新 yolov9 代码 训练一个所需版本的 YOLOv9 模型,训练完成后就会得到 YOLOv9 模型权重文件,如这里使用 c 版本训练得到了 yolov9-smoke.pt,大小约为 98M.
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/55f2993d594046eea0784e7bde1ecb06.png#

2. 模型重新参数化

2.1 文件准备

  • 找到官方代码目录 tools 内的 reparameterization.ipynb 文件,并将该文件放到主目录下。
    在这里插入图片描述

2.2 参数修改

  • 选择训练权重版本对应的 gelan.yaml 文件,如这里需修改 gelan-c.yaml 文件,并将 nc 修改为模型训练时的标签数量。
    在这里插入图片描述

2.3 重新参数化过程

  • 进入 reparameterization.ipynb 文件,进行如下修改:
    • 修改 cfg 为版本对应的 gelan.yaml 文件路径
    • 修改 nc 为标签数量
    • 修改 ckpt 为训练好的模型权重文件路径
  • 修改后运行出现下述界面即可。
    在这里插入图片描述
  • 继续运行文件中的代码块,运行完成后继续。
    在这里插入图片描述
  • 修改下述代码块中的权重文件保存路径并运行。
    在这里插入图片描述
  • 完成后即可在指定保存路径下找到重新参数化后的权重文件,可以看到文件大小为50M,相比减少了48M。
    在这里插入图片描述

3. 重新参数化后模型推理

3.1 推理超参数配置

  • yolov9 代码路径下进入 detect.py 文件进行超参数配置,常用需修改参数如下:
    • data:数据配置文件路径
    • weights:重新参数化后的的 yolov9-converted.pt 权重路径
    • batch-size:验证 batch-size 数量
    • imgsz:图片大小
    • task:验证数据集选择,如 valtest
  • 推理按需进行超参数配置
    在这里插入图片描述

3.2 模型推理及对比

  • 单卡推理指令
    python detect.py
    
  • 多卡推理指令
    python -m torch.distributed.launch --nproc_per_node 8 detect.py
    
  • 在终端中运行推理命令,若看到下述界面,即成功推理!!!
    在这里插入图片描述
  • 可进入保存路径进行推理图片查看,使用权重 yolov9-smoke-converted.pt 推理示例如下:
    在这里插入图片描述
  • 此外,使用 yolov9-smoke.pt 推理的同一图片示例如下:
    在这里插入图片描述
  • 可以看出,模型重新参数化后使用模型主分支,性能不受影响,但参数量减少近一半!!!

4. onnx 模型导出(补充内容)

4.1 超参数配置

  • yolov9 代码路径下进入 export.py 文件进行超参数配置,常用需修改参数如下:
    • weights:重新参数化后的的 yolov9-converted.pt 权重路径
    • include:导出类型选择,如 onnx
  • 超参数配置如下:
    在这里插入图片描述

4.2 模型导出

  • 模型导出指令
    python export.py
    
  • 在终端中运行推理命令,若看到下述界面,即成功导出!!!
    在这里插入图片描述

4.3 onnx 推理

  • 按照 3.1 推理超参数配置 进行超参数配置,唯一不同的是需将 weights 替换为导出的 onnx 路径。
  • 推理指令
    python detect.py
    
  • 在终端中运行推理命令,若看到下述界面,即成功推理!!!
    在这里插入图片描述
  • 可进入保存路径进行推理图片查看,使用 onnx 推理示例如下:
    在这里插入图片描述
http://www.lryc.cn/news/316748.html

相关文章:

  • Zookeeper搭建
  • 2.Datax数据同步之Windows下,mysql和sqlserver之间的自定义sql文数据同步
  • commonjs和esmodule
  • Android的编译系统
  • Midjourney指控Stability AI夜袭数据,网络风波一触即发
  • JVM知识整体学习
  • 蓝桥杯--日期统计
  • [leetcode~dfs]1261. 在受污染的二叉树中查找元素
  • PyQt5使用
  • 利用GPT开发应用005:Codex、Turbo、ChatGPT、GPT-4
  • 制造行业大数据应用:四大领域驱动产业升级与智慧发展
  • 25.5 MySQL 聚合函数
  • 多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测
  • 用Python进行机器学习:Scikit-learn的入门与实践【第126篇—Scikit-learn的入门】
  • 2024年G3锅炉水处理证模拟考试题库及G3锅炉水处理理论考试试题
  • 常用的gpt网站
  • java中string类型常用的37个函数
  • 【JVM】字节码指令 getstatic
  • P1179 [NOIP2010 普及组] 数字统计
  • 使用Java的等待/通知机制实现一个简单的阻塞队列
  • linux kernel物理内存概述(七)
  • 【C#】.net core 6.0 使用第三方日志插件Log4net,日志输出到控制台或者文本文档
  • TSINGSEE青犀煤矿矿井视频监控与汇聚融合管理视频监管平台建设方案
  • C语言 - 各种自定义数据类型
  • 第四弹:Flutter图形渲染性能
  • 基础算法(三)#蓝桥杯
  • 人工智能在增强数据安全方面的作用
  • python】jupyter notebook导出pdf和pdf不显示中文问题
  • 通过SDKMAN安装各种版本JDK
  • 软考高级:软件架构风格概念和例题