Pytorch pth 格式转ONNX 格式的详细过程

 更新时间:2023年05月18日 09:29:37   作者:MYVision_ MY视界  
PyTorch 训练的模型,需要在Jetson nano 上部署,jetson 原生提供了TensorRT 的支持,所以一个比较好的方式是把它转换成ONNX 格式,然后在通过ONNX 转换成TensorRT 格式,这篇文章主要介绍了Pytorch pth 格式转ONNX 格式,需要的朋友可以参考下

背景介绍

PyTorch 训练的模型,需要在Jetson nano 上部署,jetson 原生提供了TensorRT 的支持,所以一个比较好的方式是把它转换成ONNX 格式,然后在通过ONNX 转换成TensorRT 格式

 安装依赖库

所以就需要安装ONNX, 安装ONNX 具体的版本需要依赖于环境中的protobuf 和python版本,我的python版本是3.6.9

pip install onnx==1.11.0
pip install onnx-simplifier

 安装ONNX 没问题,但是安装onnx-simplifier的时候,Jetson xaviar 上死活安装不成功

各种报错

 但是,我换到windows 上和ubuntu 服务器上,就很正常的安装成功了

 谁知道Jetson 上为什么安装失败的,可以私信我或评论区告诉我,感谢~

转换成onnx 格式

with torch.no_grad(): 
	    torch.onnx.export( 
		model, 
		example, 
		"init.onnx", 
		opset_version=11, 
		input_names=['input'], 
		output_names=['output'])

这样就能正常导出了

在Jetson XAVIAR 上运行时可能会报如下错误

Illegal instruction (core dumped)

执行下如下命令即可

 export OPENBLAS_CORETYPE=ARMV8

ONNX 转换成TensorRT 格式

在Jetson 上通过trtexec 工具做转换

trtexec --onnx=init.onnx --saveEngine=init.trt --explicitBatch

发现转换时报如下错误:Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32.

 所以需要通过onnx-simplifier 转换一下,转换命令如下

python -m onnxsim init.onnx init_sim.onnx

 这样,就转换成功了,成功之后,后面就可以在TensorRT 上推理了

到此这篇关于Pytorch pth 格式转ONNX 格式的文章就介绍到这了,更多相关Pytorch pth 转ONNX 格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pyqt5之将textBrowser的内容写入txt文档的方法

    pyqt5之将textBrowser的内容写入txt文档的方法

    今天小编就为大家分享一篇pyqt5之将textBrowser的内容写入txt文档的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python高级搜索实现高效搜索GitHub资源

    python高级搜索实现高效搜索GitHub资源

    这篇文章主要为大家介绍了python高级搜索来高效搜索GitHub,从而高效获取所需资源,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-11-11
  • Python pandas DataFrame操作的实现代码

    Python pandas DataFrame操作的实现代码

    这篇文章主要介绍了Python pandas DataFrame操作的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • python实现马丁策略的实例详解

    python实现马丁策略的实例详解

    这篇文章主要介绍了python实现马丁策略的实例详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Python Web静态服务器非堵塞模式实现方法示例

    Python Web静态服务器非堵塞模式实现方法示例

    这篇文章主要介绍了Python Web静态服务器非堵塞模式实现方法,结合实例形式分析了Python单进程非堵塞模式实现的Web静态服务器相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • Python多线程通信queue队列用法实例分析

    Python多线程通信queue队列用法实例分析

    这篇文章主要介绍了Python多线程通信queue队列用法,结合实例形式分析了Python多线程通信queue队列相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-03-03
  • python利用小波分析进行特征提取的实例

    python利用小波分析进行特征提取的实例

    今天小编就为大家分享一篇python利用小波分析进行特征提取的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python简单计算文件夹大小的方法

    Python简单计算文件夹大小的方法

    这篇文章主要介绍了Python简单计算文件夹大小的方法,涉及Python针对目录的遍历与文件计算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Python如何自动生成环境依赖包requirements

    Python如何自动生成环境依赖包requirements

    这篇文章主要介绍了Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Python任务调度模块APScheduler使用

    Python任务调度模块APScheduler使用

    这篇文章主要介绍了Python任务调度模块APScheduler使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论