yolo7的模型转换权重pt文件转onnx

 环境配置

Ubuntu22.04 系统

yolov7训练标注的数据集,生成best.pt模型权重

labelImg软件:用来标注数据集

cuda11.8 Python3.8

需要配置yolov5或yolov7环境的,请点击以下链接:

Ubuntu20.04配置深度学习环境yolov5最简流程

一、为什么要转换生成的模型文件
用Pytorch生成的.pt模型需要先将将模型转换成onnx模型(.onnx)之后再通过onnx模型转化成ncnn模型(.bin .param)才能部署在手机端(安卓、IOS)

移动端的部署有这么几条路:

1. pt文件 --> onnx文件/torchscript文件 --> ncnn --> 安卓端部署(android studio编写)

2. pt文件 --> onnx文件/torchscript文件 --> ML文件 --> ios端部署(mac系统运行xcode编写)

3. pt文件 --> onnx文件 /torchscript文件/wts文件–> openvino/tensorrt 等部署平台 --> 树莓派/jetson部署(最好在linux环境下)

二、开始安装
安装依赖库
第一步在yolov5-master下进入终端:

1. 激活你的yolo环境

conda activate yolo7
pip3 install -r requirements.txt onnx -i https://pypi.douban.com/simple


2.导出 onnx
 

python export.py --weights ./best.pt --grid --end2end --simplify --topk-all 100 --iou-thres 0.65 --conf-thres 0.35 --img-size 640 640 --max-wh 640

在best.pt 的同级目录生成了 best.onnx、pt 和 .ptl三个文件

在best.pt 的同级目录生成了 best.onnx、best.mlmodel 和 best.torchscript.pt三个文件。

可以使用netron查看best.onnx网络模型结构。

三、在终端运行

pip install netron -i https://pypi.douban.com/simple
python
import netron
netron.start('best.onnx')



3.用onnx-simplifer 简化模型
python -m onnxsim best.onnx best-sim.onnx
 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

--weights:初始权重
    --cfg:模型配置文件
    --data:数据配置文件
    --hyp:学习率等超参数文件
    --epochs:迭代次数
    -imgsz:图像大小
    --rect:长方形训练策略,不resize成正方形,使用灰条进行图片填充,防止图片失真
    --resume:恢复最近的培训,从last.pt开始
    --nosave:只保存最后的检查点
    --noval:仅在最后一次epochs进行验证
    --noautoanchor:禁用AutoAnchor
    --noplots:不保存打印文件
    --evolve:为x个epochs进化超参数
    --bucket:上传操作,这个参数是 yolov5 作者将一些东西放在谷歌云盘,可以进行下载
    --cache:在ram或硬盘中缓存数据
    --image-weights:测试过程中,图像的那些测试地方不太好,对这些不太好的地方加权重
    --single-cls:单类别标签置0 
    --device:gpu设置  
    --multi-scale:改变img大小+/-50%,能够被32整除
    --optimizer:学习率优化器
    --sync-bn:使用SyncBatchNorm,仅在DDP模式中支持,跨gpu时使用
    --workers:最大 dataloader 的线程数 (per RANK in DDP mode)
    --project:保存文件的地址
    --name:保存日志文件的名称
    --exist-ok:对项目名字是否进行覆盖
    --quad:在dataloader时采用什么样的方式读取我们的数据,1280的大图像可以指定
    --cos-lr:余弦学习率调度
    --label-smoothing:
    --patience:经过多少个epoch损失不再下降,就停止迭代
    --freeze:迁移学习,冻结训练
    --save-period:每x个周期保存一个检查点(如果<1,则禁用)
    --seed:随机种子
    --local_rank:gpu编号
    --entity:可视化访问信息

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将YOLO模型转换权重pt文件转换ONNX格式,你需要按照以下步骤进行操作: 1. 首先,使用PyTorch权重pt文件加载到模型中。 2. 然后,使用torch.onnx.export()函数将PyTorch模型转换ONNX模型。你需要指定输入张量的形状,并将输出的ONNX模型保存到磁盘上的一个文件中。 3. 接下来,你需要使用onnx2ncnn工具将ONNX模型转换为ncnn模型onnx2ncnn是一个开源的工具,它可以将ONNX模型转换为ncnn的二进制文件和参数文件。你需要在命令行中使用onnx2ncnn工具,并提供ONNX模型文件的路径以及输出ncnn模型文件的路径。 4. 在转换过程中,你需要注意指定模型的输入和输出张量的名称和形状。你可以在转换脚本或命令行中进行设置,确保输入和输出与原始模型的定义相匹配。 5. 最后,你可以将生成的ncnn模型部署到手机端(安卓、iOS)上进行推理和应用。 请注意,在进行模型转换的过程中,确保路径和文件名的正确性,并根据你自己的环境和需求进行相应的设置。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [yolo模型转换权重pt文件onnx(1)](https://blog.csdn.net/m0_60657960/article/details/129404179)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [yolo模型转换权重onnx文件ncnn(2)](https://blog.csdn.net/m0_60657960/article/details/129405561)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值