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 格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • flask框架实现修改密码和免密登录功能

    flask框架实现修改密码和免密登录功能

    flask是python web开发的常用框架之一。本文将讲述flask如何实现修改密码和免密登录功能
    2021-05-05
  • python 的赋值语句和基本输入输出详解

    python 的赋值语句和基本输入输出详解

    这篇文章主要为大家介绍了python 赋值语句和基本输入输出,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • pyTorch深度学习多层感知机的实现

    pyTorch深度学习多层感知机的实现

    这篇文章主要为大家介绍了pyTorch深度学习多层感知机的实现,文中附含详细示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮
    2021-09-09
  • Python要如何实现列表排序的几种方法

    Python要如何实现列表排序的几种方法

    这篇文章主要介绍了Python要如何实现列表排序的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 简单的Apache+FastCGI+Django配置指南

    简单的Apache+FastCGI+Django配置指南

    这篇文章主要介绍了简单的Apache+FastCGI+Django配置指南,这也是Python上最流行的web框架Django的最流行搭配环境:)需要的朋友可以参考下
    2015-07-07
  • python模式 工厂模式原理及实例详解

    python模式 工厂模式原理及实例详解

    这篇文章主要介绍了python模式 工厂模式原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Django中的ajax请求

    Django中的ajax请求

    今天小编就为大家分享一篇关于Django中的ajax请求,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 详解Python list 与 NumPy.ndarry 切片之间的对比

    详解Python list 与 NumPy.ndarry 切片之间的对比

    这篇文章主要介绍了详解Python list 与 NumPy.ndarry 切片之间的区别的相关资料,list 切片返回的是不原数据,对新数据的修改不会影响原数据而NumPy.ndarry 的切片返回的是原数据需要的朋友可以参考下
    2017-07-07
  • 简单实例带你了解Python的编译和执行全过程

    简单实例带你了解Python的编译和执行全过程

    python 是一种解释型的编程语言,所以不像编译型语言那样需要显式的编译过程。然而,在 Python 代码执行之前,它需要被解释器转换成字节码,这个过程就是 Python 的编译过程,还不知道的朋友快来看看吧
    2023-04-04
  • PIL.Image.open和cv2.imread的比较与相互转换的方法

    PIL.Image.open和cv2.imread的比较与相互转换的方法

    这篇文章主要介绍了PIL.Image.open和cv2.imread的比较与相互转换的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论