• pt模型训练,转onnx


    pytorch训练yolov5s.pt,之后转onnx。

    以检测条形码为例,1分类问题,训练yolov5s.pt。

    1、github上下载yolov5程序以及pt模型文件,ultralytics/yolov5: YOLOv5 

     

    2、data文件夹里,images放入样本图片,labels放入对应的txt标签(labelImg制作,注意选择YOLO模式)

     新建yaml文件(上图中的barcode.yaml),用于指定路径和类别。为了省事训练和验证用的一样的图。

    3、VSCode打开程序文件夹

     修改models里yolov5s.yaml类别为1

     修改根目录里的train.py

     点击VSCode右上方的开始按钮,训练完毕后,在runs\train\exp\weights\里得到pt模型 best.pt

    4、测试下效果

    修改根目录里detect.py

     点击VSCode右上方的开始按钮,检测完毕后,在runs\detect\exp\里得到结果图。

    5、pt转onnx

    VSCode下方的“终端”里输入命令。注意自己的pt路径,会在同路径里得到best.onnx。

    python export.py --weights runs/train/exp7/best.pt --img 640 --batch 1

    简化模型,先安装包。

    【为什么要简化?】在训练完深度学习的pytorch或者tensorflow模型后,有时候需要把模型转成 onnx,但是很多时候,很多节点比如cast节点,Identity 这些节点可能都不需要,我们需要进行简化,这样会方便我们把模型转成ncnn或者mnn等这些端侧部署的模型格式或者通过tensorRT进行部署。

    pip install onnx coremltools onnx-simplifier

    进入best.onnx目录

    cd runs/train/exp7/weights

    简化,同路径下得到简化后的模型 best-sim.onnx

    python -m onnxsim best.onnx best-sim.onnx

    查看网络结构

    pip install netron
    python
    import netron
    netron.start('best-sim.onnx')
  • 相关阅读:
    vue+ element table如何给指定的单元格添加点击事件
    nodejs 笔记
    sublime text3 编辑器如何运行js文件
    控制台运行nodejs程序
    控制台命令
    类似性别(0、1)判断的table列表数据渲染
    vue moment库格式化处理日期
    用百度siteapp的uaredirect.js判断用户访问端而进行域名的自动跳转
    编写email邮件的html页面注意事项
    IE6常见bug总结
  • 原文地址:https://www.cnblogs.com/xixixing/p/15846836.html
Copyright © 2020-2023  润新知