这篇文章主要介绍“pytorch模型怎么转onnx模型”,在日常操作中,相信很多人在pytorch模型怎么转onnx模型问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pytorch模型怎么转onnx模型”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!前提条件:需要安装onnx 和 onnxruntime,可以通过 pip install onnx 和 pip install onnxruntime 进行安装pytorch 转 onnx 只需要一个函数 torch.onnx.export参数说明:model——需要导出的pytorch模型args——模型的输入参数,满足输入层的shape正确即可。path——输出的onnx模型的位置。例免费云主机域名如‘yolov5.onnx’。export_params——输出模型是否可训练。default=True,表示导出trained model,否则untrained。verbose——是否打印模型转换信息。default=False。input_names——输入节点名称。default=None。output_names——输出节点名称。default=None。do_constant_folding——是否使用常量折叠(不了解),默认即可。default=True。dynamic_axes——模型的输入输出有时是可变的,如Rnn,或者输出图像的batch可变,可通过该参数设置。如输入层的shape为(b,3,h,w),batch,height,width是可变的,但是chancel是固定三通道。
格式如下 :
1)仅list(int) dynamic_axes={‘input’:[0,2,3],‘output’:[0,1]}
2)仅dict
3)mixed dynamic_axes={‘input’:{0:‘batch’,2:‘height’,3:‘width’},‘output’:[0,1]}
用来指定输出哪些,以及顺序
若为None,则按序输出所有的output,即返回[output_0,output_1]
若为[‘output_1’,‘output_0’],则返回[output_1,output_0]
若为[‘output_0’],则仅返回[output_0:tensor]input:dict
可以通过session.get_inputs().name获得名称
其中key值要求与torch.onnx.export中设定的一致如前所述,经验表明,ONNX 模型的运行效率明显优于原 PyTorch 模型,这似乎是源于 ONNX 模型生成过程中的优化,这也导致了模型的生成过程比较耗时,但整体效率依旧可观。此外,根据对 ONNX 模型和 PyTorch 模型运行结果的统计分析(误差的均值和标准差),可以看出 ONNX 模型的运行结果误差很小、基本可靠。到此,关于“pytorch模型怎么转onnx模型”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!
相关推荐: MongoDB怎么对Document插入、删除及更新
这篇文章主要介绍了MongoDB怎么对Document插入、删除及更新的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MongoDB怎么对Document插入、删除及更新文章都会有所收获,下面我们一起来看看吧。shell当中不支持批…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。