1.转onnx 代码

import argparse
import sys
import timesys.path.append('./')  # to run '$ python *.py' files in subdirectoriesimport torch
import torch.nn as nnimport models
from models.experimental import attempt_load
from utils.activations import Hardswish, SiLU
from utils.general import set_logging, check_img_size
from utils.torch_utils import select_deviceif __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argument('--weights', type=str, default='/home/Oyj/yolov5/runs/train/best.pt', help='weights path')  # from yolov5/models/parser.add_argument('--img-size', nargs='+', type=int, default=[608, 608], help='image size')  # height, widthparser.add_argument('--batch-size', type=int, default=1, help='batch size')parser.add_argument('--dynamic', action='store_true', help='dynamic ONNX axes')parser.add_argument('--grid', action='store_true', help='export Detect() layer grid')parser.add_argument('--device', default='0', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')opt = parser.parse_args()opt.img_size *= 2 if len(opt.img_size) == 1 else 1  # expandprint(opt)set_logging()t = time.time()# Load PyTorch modeldevice = select_device(opt.device)model = attempt_load(opt.weights, map_location=device)  # load FP32 modellabels = model.names# Checksgs = int(max(model.stride))  # grid size (max stride)opt.img_size = [check_img_size(x, gs) for x in opt.img_size]  # verify img_size are gs-multiples# Inputimg = torch.zeros(opt.batch_size, 3, *opt.img_size).to(device)  # image size(1,3,320,192) iDetection# Update modelfor k, m in model.named_modules():m._non_persistent_buffers_set = set()  # pytorch 1.6.0 compatibilityif isinstance(m, models.common.Conv):  # assign export-friendly activationsif isinstance(m.act, nn.Hardswish):m.act = Hardswish()elif isinstance(m.act, nn.SiLU):m.act = SiLU()# elif isinstance(m, models.yolo.Detect):#     m.forward = m.forward_export  # assign forward (optional)model.model[-1].export = not opt.grid  # set Detect() layer grid exporty = model(img)  # dry run# TorchScript exporttry:print('\nStarting TorchScript export with torch %s...' % torch.__version__)f = opt.weights.replace('.pt', '.torchscript.pt')  # filenamets = torch.jit.trace(model, img)ts.save(f)print('TorchScript export success, saved as %s' % f)except Exception as e:print('TorchScript export failure: %s' % e)# ONNX exporttry:import onnxprint('\nStarting ONNX export with onnx %s...' % onnx.__version__)f = opt.weights.replace('.pt', '.onnx')  # filenametorch.onnx.export(model, img, f, verbose=False, opset_version=12, input_names=['images'],output_names=['classes', 'boxes'] if y is None else ['output'],dynamic_axes={'images': {0: 'batch', 2: 'height', 3: 'width'},  # size(1,3,640,640)'output': {0: 'batch', 2: 'y', 3: 'x'}} if opt.dynamic else None)# Checksonnx_model = onnx.load(f)  # load onnx modelonnx.checker.check_model(onnx_model)  # check onnx model# print(onnx.helper.printable_graph(onnx_model.graph))  # print a human readable modelprint('ONNX export success, saved as %s' % f)except Exception as e:print('ONNX export failure: %s' % e)# CoreML exporttry:import coremltools as ctprint('\nStarting CoreML export with coremltools %s...' % ct.__version__)# convert model from torchscript and apply pixel scaling as per detect.pymodel = ct.convert(ts, inputs=[ct.ImageType(name='image', shape=img.shape, scale=1 / 255.0, bias=[0, 0, 0])])f = opt.weights.replace('.pt', '.mlmodel')  # filenamemodel.save(f)print('CoreML export success, saved as %s' % f)except Exception as e:print('CoreML export failure: %s' % e)# Finishprint('\nExport complete (%.2fs). Visualize with https://github.com/lutzroeder/netron.' % (time.time() - t))

2.onnx转simple_onnx

所在python解析器下pip install onnx-simplifier  安装库;

执行命令 python -m onnxsim .onnx文件 best_simple.onnx

3.onnx、simple_onnx转trt

注意:需要安装 tensorrt 库及配置环境

进入bin所在路径

运行命令 ./trtexec --onnx=.onnx文件 --saveEngine=.trt文件

pytorch pt转onnx 以及 simpler—onnx方法(包含tensorrt文件转换)相关推荐

  1. 把PPT转WORD形式的方法及常用文件转换

    一.把 PPT 转 WORD 形式的方法 1 .利用 " 大纲 " 视图 打开 PPT 演示文稿,单击 " 大纲 " ,在左侧 " 幻灯片 / 大纲 ...

  2. 将训练好的pytorch模型的pth文件转换成onnx模型(亲测成功)

    将训练好的pytorch模型的pth文件转换成onnx模型(亲测成功) 模型转换 声明:本文原创,未经许可严禁转载,原文地址https://blog.csdn.net/hutao1030813002/ ...

  3. ONNX 实时graph优化方法

    ONNX 实时graph优化方法 ONNX实时提供了各种图形优化来提高模型性能.图优化本质上是图级别的转换,从小型图简化和节点消除,到更复杂的节点融合和布局优化. 图形优化根据其复杂性和功能分为几个类 ...

  4. PyTorch模型部署:pth转onnx跨框架部署详解+代码

    文章目录 引言 基础概念 onnx:跨框架的模型表达标准 onnxruntime:部署模型的推理引擎 示例代码 0)安装onnx和onnxruntime 1)pytorch模型转onnx模型 2)on ...

  5. DL框架之PyTorch:深度学习框架PyTorch的简介、安装、使用方法之详细攻略

    DL框架之PyTorch:PyTorch的简介.安装.使用方法之详细攻略 DL框架之PyTorch:深度学习框架PyTorch的简介.安装.使用方法之详细攻略 目录 PyTorch的简介 1.pyto ...

  6. 1、pth转onnx模型、onnx转tensorrt模型、python中使用tensorrt进行加速推理(全网最全,不信你打我)

    本文向所有亲们介绍在python当中配置tensorrt环境.使用tensorrt环境进行推理的教程,主要分为两大部分,第一部分环境配置,第二部分前向推理. 第一部分 环境配置 第一步:检查你的系统类 ...

  7. onnx文件及其结构、正确导出onnx、onnx读取、onnx创建、onnx修改、onnx解析器

    一.onnx基本概念 1.ONNX的本质,是一种Protobuf格式文件,ONNX文件其实就是Protobuf序列化过后储存的东西.其定义是protobuf语法,语法类似json. 2.Protobu ...

  8. 编译ONNX模型Compile ONNX Models

    编译ONNX模型Compile ONNX Models 本文是一篇介绍如何使用Relay部署ONNX模型的说明. 首先,必须安装ONNX包. 一个快速的解决方案是安装protobuf编译器,然后 pi ...

  9. 【ONNX】yolov5 onnx修改

    什么是ONNX ONNX(Open Neural Network Exchange)简称ONNX 微软和FaceBook提出用来表示深度学习模型的开放格式. ONNX定义了一组和环境.平台无关的标准格 ...

最新文章

  1. 浅谈C/C++中的static和extern关键字
  2. 好奇了好久的「对象」,就这?
  3. 与其雇人杀虫不如购买杀虫剂
  4. anaconda学python的教程_初学 Python 者自学 Anaconda 的正确姿势是什么?
  5. paip.提升性能----数据库连接池以及线程池以及对象池
  6. 期刊论文格式是什么样的,如何排版?
  7. 最简单的非线性动力系统
  8. get请求和post请求参数中文乱码的解决办法
  9. mtk协议与qc协议_通用充电器快充协议QC2.0,QC3.0,MTK PE,PE+,充电识别
  10. 【Android】【架构】【美团猫眼模块化】
  11. 个人收集的mac破解软件免费下载(不断更新中)
  12. parent.layer.open打开的页面向上个页面传值
  13. _stdcall是什么?
  14. matlab 正负数,matlab判断函数值正负程序
  15. 毕设模块之一:最新版 微博网络爬虫(可登录版)
  16. 粒子群优化算法改进之多子群合作粒子群优化算法
  17. binlog redo log undo log
  18. 2015 上海网赛 HDU5469 树分治
  19. 2020届c++工程师求职准备——计划篇(2019.03.05.)
  20. 神州八号明日清晨发射

热门文章

  1. 总体方差与样本方差分母的小小区别,n还是n-1?
  2. windows11家庭版安装自带虚拟机
  3. 联想win0笔记本电脑相机打不开,提示我们找不到你的相机?
  4. Eclipse报:Ambiguous mapping. Cannot map 'XXXController' method
  5. autocad2008注册步骤
  6. 技巧积累--Smack、Spark、Openfire
  7. 1. Fomula-Fundations of Risk Management
  8. 详解 IT 部门的管理
  9. django - migrate 重置
  10. 霍耳位移传感器与电位器位移传感器