onnx文件转pytorch pt模型文件
onnx文件转pytorch pt模型文件
- 1.onnx2torch转换及测试
- 2.存在问题
- 参考文献
从pytorch格式转onnx格式,官方有成熟的API;那么假如只有onnx格式的模型文件,该怎样转回pytorch格式?
https://github.com/ENOT-AutoDL/onnx2torch提供了一种解决方法。
1.onnx2torch转换及测试
整体使用非常简单:
import torch
import onnxruntime
import numpy as nponnx_file="model.onnx"
pt_file="model.pt"DEVICE = 'cpu'
_input = torch.rand([1, 3, 512, 512]).to(DEVICE)providers = ['CPUExecutionProvider']
session = onnxruntime.InferenceSession(onnx_file, providers=providers)
output_names = [x.name for x in session.get_outputs()]
onnx_output= session.run(output_names, {session.get_inputs()[0].name: _input.cpu().numpy()})print(onnx_output[0].shape)model=torch.load(pt_file)
model.to(DEVICE)
model.eval()
with torch.no_grad():torch_output = model(_input)
print(torch_output.shape)print(torch.allclose(torch.tensor(onnx_output[0]),torch_output, atol=1e-3))
打印结果可知,转换精度是很高的。
2.存在问题
转换成的torch模型使用时batch要与导出onnx时使用的batch一致,否则会出错。
有机会再研究如何修改。
Anyway,这已经提供了非常好的方案了。
参考文献
[1] https://github.com/ENOT-AutoDL/onnx2torch
[2] MMdnn
相关文章:
onnx文件转pytorch pt模型文件
onnx文件转pytorch pt模型文件 1.onnx2torch转换及测试2.存在问题参考文献 从pytorch格式转onnx格式,官方有成熟的API;那么假如只有onnx格式的模型文件,该怎样转回pytorch格式? https://github.com/ENOT-AutoDL/onnx2torch提供了…...
智能座舱人机交互升级
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源&…...
RabbitMQ中点对点(Point-to-Point)通讯方式的Java实现
RabbitMQ是一个广泛使用的开源消息代理软件,它实现了高级消息队列协议(AMQP)。RabbitMQ支持多种消息传递模式,其中最基本的是点对点(Point-to-Point)通讯方式。在这种模式下,消息生产者将消息发…...
爬虫实战:获取1688接口数据全攻略
引言 在电商领域,数据的重要性不言而喻。1688作为中国领先的B2B电商平台,提供了海量的商品数据。通过爬虫技术获取这些数据,可以帮助企业进行市场分析、价格监控和供应链管理。本文将详细介绍如何使用Python爬虫技术合法合规地获取1688接口数…...
生成树协议STP工作步骤
第一步:选择根桥 优先级比较:首先比较优先级,优先级值越小的是根桥MAC地址比较:如果优先级相同,则比较MAC地址。MAC地址小的是根桥。 MAC地址比较的时候从左往右,一位一位去比 第二步:所有非根…...
Android14 AOSP支持短按关机
修改frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java diff --git a/base/services/core/java/com/android/server/policy/PhoneWindowManager.java b/base/services/core/java/com/android/server/policy/PhoneWindowManager.java in…...
C# 和 go 关于can通信得 整理
在C#中开发CAN(Controller Area Network)通信接口时,确实有一些现成的NuGet包可以简化你的开发工作。这些库通常提供了与CAN硬件接口通信所需的基本功能,如发送和接收CAN消息。下面是一些常用的NuGet包: PCANBasic.NET…...
vue常用命令汇总
nvm 一个nodejs版本管理工具,解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。 npm 可以管理 nodejs 的第三方插件。 vue-cli 是Vue提供的一个官方cli,专门为单页面应用快速搭建繁杂的脚手架。 nginx 是一个高性能的HTTP和反向代理we…...
【C++习题】18.逆波兰表达式求值
题目:逆波兰表达式求值 链接🔗:逆波兰表达式求值 题目: 代码: class Solution {public:int evalRPN(vector<string>& tokens) {stack<int> s;for (size_t i 0; i < tokens.size(); i){string&a…...
本地如何使用 yarn link 调试本地 npm 包
如何使用 yarn link 调试本地 npm 包: 在前端开发中,通常我们会开发并使用许多 npm 包来实现项目的功能。随着开发的深入,我们经常需要调试或修改某些 npm 包的源码。如果你正在开发一个 npm 包,并且希望在本地项目中进行调试&am…...
江恩45年一书的自己一点读书见解
读了下江恩的华尔街45年,有些浅薄的体会,记录下 江恩的华尔街45年里面,感触比较深刻的有以下几点: 1.为什么会亏钱 1.利用大仓位来过度交易,违背了资本安全的原则。买卖过于频繁 2.没有用止损单来保护你的交易。 3.缺…...
影响 Linux、Unix 系统的 CUPS 漏洞可导致 RCE
在经过大量炒作和第三方过早泄露信息之后,安全研究员 Simone Margaritelli 公布了有关通用 UNIX 打印系统 (CUPS) 中的四个零日漏洞的详细信息。 这些漏洞可被远程、未经身份验证的攻击者滥用,在易受攻击的 Linux 和类 Unix 系统上实现代码执行。 CUPS…...
【汇编】思考汇编中的两个基本问题
1. 若干年前的疑问 几年前还在大学学习汇编时,不管是考试还是课程设计,其实都很顺利。但是心里一直对什么时候使用哪个寄存器存在疑惑,编写汇编时,没有十足的把握,都是抱着试一试的心态去完成了课程任务。 工作八年有…...
Nest Dynamic modules 笔记
Nest Dynamic modules 文档地址👈 记录Dynamic modules是因为确实抽象,文档并没有很详细的指出不同方式创建动态模块的区别 两种不同的动态模块创建方式 静态模块传统动态模块方式实现三种不同的方法命名使用ConfigurableModuleBuilder异步动态模块如果…...
生成式AI、大模型、多模态技术开发与应用学习清单
学习目的: 了解AIGC发展现状与核心技术。 掌握Transformer核心开发技术。掌握向量数据库的工作原理、检索算法、主要开源数据库。掌握大模型调用、微调方法。掌握以GPT大语言模型为基础的工作原理。 掌握AIGC技术在跨模态领域的应用技术。了解GPT提示工程和AIGC的安…...
STM32 CubeMx HAL库 独立看门狗IWDG配置使用
看门狗这里我就不多介绍了,能搜到这篇文章说明你了解 总之就是一个单片机重启程序,设定好超时时间,在超时时间内没有喂狗,单片机就会复位 主要应用在单片机异常重启方面,比如程序跑飞(注意程序跑飞时你就…...
网络安全渗透测试概论
渗透测试,也称为渗透攻击测试是一种通过模拟恶意攻击者的手段来评估计算机系统、网络或应用程序安全性的方法。 目的 旨在主动发现系统中可能存在的安全漏洞、脆弱点以及潜在风险,以便在被真正的恶意攻击者利用之前,及时进行修复和加固&…...
【大数据技术基础】【记录Ubuntu 16.04升级到18.04】Ubuntu的一个版本升级到另一个版本
在 Ubuntu 操作系统中进行软件更新和系统升级 Ubuntu Kylin 16.04 LTS 系统进行系统升级到 Ubuntu 18.04.6 LTS 版本 升级提示:系统弹出提示框,告知用户有新版本的 Ubuntu 可用,询问用户是否想要升级。 认证窗口:显示了一个认证…...
知识库系统,集成neo4j,集成activiti工作流,集成es全文检索,知识图谱血缘关系,nlp知识库
一、项目介绍 一款全源码,可二开,可基于云部署、私有部署的企业级知识库云平台,一款让企业知识变为实打实的数字财富的系统,应用在需要进行文档整理、分类、归集、检索、分析的场景。 为什么建立知识库平台? 助力企业…...
批量合并多个Excel到一个文件
工作中,我们经常需要将多个Excel的数据进行合并,很多插件都可以做这个功能。但是今天我们将介绍一个完全免费的独立软件【非插件】,来更加方便的实现这个功能。 准备Excel 这里我们准备了两张待合并的Excel文件 的卢易表 打开的卢易表软件…...
JetBrains IDE试用期重置:2026年开发者如何优雅应对评估限制?
JetBrains IDE试用期重置:2026年开发者如何优雅应对评估限制? 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 当你的JetBrains IDE突然弹出"试用期已结束"的提示,打断…...
WPS样式与题注的隐藏用法:这样设置,让你的技术文档像专业手册一样清晰
WPS样式与题注的隐藏用法:这样设置,让你的技术文档像专业手册一样清晰 在技术文档撰写领域,格式混乱往往是内容质量的第一杀手。想象一下这样的场景:当你需要修改某个章节标题时,所有交叉引用的图表编号都需要手动更新…...
别再只盯着Dice了!医疗影像分割模型评估,用DeepMind的surface-distance库搞定Hausdorff 95%和ASSD
医疗影像分割评估进阶:为什么Hausdorff 95%和ASSD比Dice更能反映临床价值 在KiTS19肾脏肿瘤分割挑战赛中,一支参赛队伍的3D Dice系数达到0.92,却在临床医生评估环节被指出"肿瘤边界模糊不清"。这个典型案例揭示了医疗影像分割评估的…...
Jupyter Notebook安全配置全攻略:如何在Linux上设置密码保护与远程访问
Jupyter Notebook安全配置全攻略:如何在Linux上设置密码保护与远程访问 在数据科学和机器学习领域,Jupyter Notebook已经成为不可或缺的工具,它提供了交互式编程环境,让开发者能够轻松地进行数据探索、可视化和模型训练。然而&…...
基于Fluent的SLM过程模拟:涵盖案例研究、热源UDF及粉末导入技术详解
基于fluent的slm过程模拟,包含案例,热源udf,粉末的导入都有涉及。在增材制造领域,选择性激光熔化(SLM)技术因其高精度和复杂形状的制造能力而备受关注。今天,我们就来聊聊如何基于Fluent进行SLM…...
OpenClaw多模态研究助手:千问3.5-35B-A3B-FP8实现论文图表解析与笔记生成
OpenClaw多模态研究助手:千问3.5-35B-A3B-FP8实现论文图表解析与笔记生成 1. 为什么需要多模态研究助手 作为一名经常需要阅读前沿论文的研究者,我长期被两个问题困扰:一是PDF论文中的图表数据提取费时费力,二是阅读过程中的碎片…...
别让ChatGPT变成你的安全漏洞:OWASP LLM Top 10(2024)实战避坑指南
别让ChatGPT变成你的安全漏洞:OWASP LLM Top 10(2024)实战避坑指南 当大型语言模型(LLM)从实验室走向企业级应用时,安全风险正以指数级速度增长。2023年某金融科技公司因提示词注入导致百万用户数据泄露的案…...
变深声纳(VDS)收放系统技术情报报告
1. 系统概述 变深声纳(Variable Depth Sonar, VDS)是现代反潜战(ASW)的关键传感器技术,通过将声纳拖体部署到舰艇下方一定深度,避开表层温跃层和舰艇自噪声,实现对常规潜艇的有效探测。VDS收放系统是确保声纳拖体安全部署、精确定位和可靠回收的核心机械系统。 2. 拖曳…...
【区间概率预测】PSO-LightGBM-ABKDE多变量时序预测 基于粒子群算法优化轻量级梯度提升机结合自适应带宽核函数密度估计的多变量时序预测
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。👇 关注我领取海量matlab电子书和数学建模资料🍊个人信条:格物致知,完整Matl…...
SparkSQL临时表实战:4种高效创建方式与应用场景解析
1. SparkSQL临时表基础与应用场景 临时表是SparkSQL中处理数据的重要工具,它允许我们在数据处理过程中暂存中间结果,避免重复计算。我在实际项目中经常遇到需要多次引用同一数据集的情况,这时候临时表就能大显身手。比如做数据清洗时…...
