pytorch保存onnx模型

pytorch之导出ONNX相关问题 【代码】pytorch之导出ONNX相关问题。 阅读详情

pytorch保存onnx模型


因为一些原因,需要用pytorch去创建、训练和保存模型。pytorch保存的模型通常为pth、pt、pkl的格式,但这种类型的模型不能在其他框架(tensorflow)下直接加载,因此需要将模型保存为其他格式的。在网上进行相应的学习后,总结出一下两点:

  1. pytorch可以直接将模型保存为onnx的,并且可以通过onnx转换为其他格式的模型(pb);
  2. pytorch也可以直接将模型保存为caffemodel,但是需要一定的代码量去实现;

环境配置:

操作系统 ubuntu18.04
GPU型号 GTX960
cuda版本 10.0
pytorch版本 1.2.0

实现代码:

import torch
import torch.onnx
from torch.autograd import Variable

x = Variable(torch.randn(1, 3, 32, 32)).cuda()
torch_out = torch.onnx.export(model, x, 
                              "test.onnx",
                               export_params=True,
                               verbose=True)

API export说明:

export(model, args, f, export_params=True, verbose=False, training=False,
           input_names=None, output_names=None, aten=False, export_raw_ir=False,
           operator_export_type=None, opset_version=None, _retain_param_name=True,
           do_constant_folding=False, example_outputs=None, strip_doc_string=True, dynamic_axes=None)

参数说明:

Export a model into ONNX format.  This exporter runs your model
    once in order to get a trace of its execution to be exported;
    at the moment, it supports a limited set of dynamic models (e.g., RNNs.)
    See also: :ref:`onnx-export`
    Arguments:
        model (torch.nn.Module): the model to be exported.
        args 
Pytorch通过保存为ONNX模型转TensorRT5 1 Pytorch以ONNX方式保存模型 def saveONNX(model, filepath): ''' 保存ONNX模型 :param model: 神经网络模型 :param filepath: 文件保存路径 ''' # 神经网络输入数据类型 dumm... 阅读详情

相关推荐

pytorch 模型的保存与加载方法以及使用onnx模型部署推理

前言 在pytorch中,模型的保存和加载是一个比较麻烦的点,因为Pytorch保存模型的pkl格式中仅能记住每一层对应的参数,以及对应的模型结构所保存的位置也即是class所存放的位置,假如class位置改变的话,那么模型加载的时候就会报很多错误,大概的意思就是类存放的位置发生了改变。那么如何改变这一现状呢? 首先对于模型的重新加载和训练,我们可以使用pkl文件格式来进行,因为这一阶段的话并不涉及到模型结构存储文件的转移。但是到了推理部署阶段的时候,我们就必须把模型的结构以及权重保存下来,否则会给我们后面

qq_44930937的博客 1万+

PyTorch模型保存与加载的3种实战方法(附ONNX转换避坑指南)

本文详细解析PyTorch模型保存与加载的3种实战方法,包括state_dict参数快照、训练现场保存和完整模型序列化,并提供ONNX转换的避坑指南。特别针对模型部署中的动态轴设置、算子兼容性和量化部署等关键问题,给出实用解决方案,帮助开发者高效实现跨框架模型部署。

weixin_29038303的博客 171

PyTorch模型保存的‘大坑’:为什么你的.pt文件换台机器就加载不了?兼谈转ONNX的正确前置步骤

本文深入探讨了PyTorch模型保存的常见问题,特别是.pt文件在不同机器上加载失败的原因,并详细解析了完整模型保存与参数保存的本质区别。文章还提供了将PyTorch模型正确转换为ONNX格式的前置步骤和最佳实践,帮助开发者避免模型转换和部署中的常见陷阱。

weixin_42543309的博客 161

别再乱存模型了!PyTorch模型保存格式.pt/.pth/.bin/.onnx到底怎么选?一篇讲透

本文深入解析PyTorch模型保存格式.pt/.pth/.bin/.onnx的选择策略,从原理到实战提供完整决策框架。涵盖模型状态持久化的四个层级、文件后缀的真实含义,以及TorchScript和ONNX格式的进阶用法与生产环境部署方案,帮助开发者避免常见陷阱并优化性能。

weixin_28683689的博客 398

模型转换 PyTorch转ONNX 入门

本文主要介绍如何将PyTorch模型转换为ONNX模型,为后面的模型部署做准备。转换后的xxx.onnx模型,进行加载和测试。最后介绍使用Netron,可视化ONNX模型,看一下网络结构;查看使用了那些算子,以便开发部署。目录前言一、PyTorch模型转ONNX模型1.1 转换为ONNX模型且加载权重1.2 转换为ONNX模型但不加载权重1.3 torch.onnx.export() 函数二、加载ONNX模型三、可视化ONNX模型。

黎国溥 2万+

Pytorch模型转ONNX格式详解

ONNX(Open Neural Network Exchange)则是一种开源的跨平台深度学习框架。将PyTorch模型转为ONNX格式可以使得该模型可以在其他的深度学习框架中使用,如TensorFlow,Caffe等。下面介绍一下PyTorch转ONNX的原理和方法。

crasher123的博客 5274

pytorch 多路模型独立保存,torch转onnx再转pb然后tf serving部署使用

参考:DSSM双塔模型取user、item侧模型单独保存 https://blog.youkuaiyun.com/olizxq/article/details/118068337 大体结构 dict_trained = model.state_dict() # trained model trained_lst = list(dict_trained.keys()) # user tower model_user = DSSM(user_feature_columns, [], task='binary', d

weixin_42357472的博客 1435

【工具使用】Keil常用的调试操作整理介绍

2、当选择了非0级优化时,调试可能会变得困难,具体表现在断点调试。该按钮是在进入了函数单步调试的时候,有时候你可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数,回到函数被调用的置。:如果是在C语言窗口中,则是按单条语句执行,与单步调试不同的是,遇到函数不会进入函数内部,而是直接全速运行函数,并跳到下一条语句。但我的Keil软件中无法显示这个视图,并且通过修改系统试图,调试时,点击打开系统视图发生了闪退的现象,目前能想到的原因是:重新安装Keil,安装最新版本。

MEYOU_Cc 不吃香菜! 1万+

企业数字化转型的理论指南:构建未来企业的关键策略与实践路径

数字化转型已经成为当今企业发展和市场竞争的核心驱动力,而在这一过程中,企业架构(EA)发挥着至关重要的作用。这本白皮书《世界级企业架构:建立和发展EA能力的领导者方法》提供了深入的理论指导,为企业如何通过企业架构实现有效的数字化转型提供了清晰的路径。本篇文章将从,解读该书的核心内容,揭示企业在数字化转型过程中应该如何通过EA的构建和实施,驱动组织变革与技术创新。

AZone架构院的博客 3172

创建动态代理对象bean,并动态注入到spring容器中

使用过Mybatis的同学,应该都知道,我们只需要编写mybatis对应的接口和mapper XML文件即可,并不需要手动编写mapper接口的实现。这里mybatis就用到了JDK动态代理,并且将生成的接口代理对象动态注入到Spring容器中。 这里涉及到几个问题。也许有同学会有疑问,我们直接编写好类,加入@Component等注解不是可以注入了吗?或者在配置类(@Configuration)...

lichuangcsdn的博客 3万+

第一章 电力电子仿真软件 PLECS简介

PLECS是瑞士Plexim公司开发的电力电子仿真软件,具有快速仿真、丰富元件库和热分析功能。软件提供单机版和嵌入MATLAB的版本,支持多平台安装且流程简单。首次运行需获取授权文件,提供60分钟演示模式。界面包含模型创建、帮助文档和元件库浏览器等功能区域,操作便捷。该软件是专业高效的电力电子系统仿真工具。

495

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen‘s Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

【机器学习|评价指标8】混淆矩阵(Confusion Matrix)、Cohen's Kappa 系数、详解,平均交并比(mIoU)、列联表(Contingency Table)附代码。

2401_89898861的博客 1424

Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device

Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device, Quartus的安装过程不同于ISE/vivado的安装。“Current license file does not support”这种情况多出现在高版本的quartus中综合很久以前的代码,使用很早型号的FPGA或是CPLD。对于这种情况,就得在官网或是其他网站上下载包含所需Device的库文件。

夜半少年的博客 1万+

Python 爬虫教程:抓取视频平台数据(观看量、评论数、点赞数等)

爬虫(Crawler)是通过编写程序模拟浏览器行为,从互联网上抓取并提取信息的技术。爬虫的核心任务是模拟用户访问网页,获取网页内容并解析出我们需要的数据。爬虫技术被广泛应用于搜索引擎、数据分析、电商价格监控、内容抓取等领域。Bilibili和YouTube。这两个平台都提供丰富的用户生成内容(UGC),且在中国和全球范围内都非常流行。Bilibili:以二次元文化为主的视频平台,用户活跃,视频内容丰富。Bilibili的网页数据较为简单,可以通过传统的HTML解析抓取。YouTube。

2201_76125261的博客 1854

《UDS协议从入门到精通》系列——图解0x83:访问时间参数

详细介绍UDS协议0x83服务,目标ECU的时序参数设置有哪些注意点?

车载系统攻城狮 2138

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: pytorch加载.pth格式文件
下一篇: 图像常用的插值算法:最近邻插值、双线性插值和双三次插值算法
一杯盐水
博客等级 码龄10年 62粉丝 59原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值