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


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

1. 模型权重准备

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 推理示例如下:
    在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-13 08:30:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-13 08:30:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-13 08:30:02       82 阅读
  4. Python语言-面向对象

    2024-03-13 08:30:02       91 阅读

热门阅读

  1. Github 2024-03-12开源项目日报 Top10

    2024-03-13 08:30:02       34 阅读
  2. 26-4 SQL注入攻击 - 不同数据库系统利用dnslog姿势

    2024-03-13 08:30:02       45 阅读
  3. PyTorch学习笔记(四)

    2024-03-13 08:30:02       43 阅读
  4. 训练专门化的大型语言模型(LLM)现在更简单了

    2024-03-13 08:30:02       38 阅读
  5. apisix lua插件使用redis

    2024-03-13 08:30:02       37 阅读
  6. html5&css&js代码 014 布局框架

    2024-03-13 08:30:02       47 阅读
  7. pytorch 函数整理

    2024-03-13 08:30:02       43 阅读
  8. elementui el-select组件多选设置初始值无法修改问题

    2024-03-13 08:30:02       39 阅读
  9. vue3和vue2的区别是什么

    2024-03-13 08:30:02       46 阅读