当前位置: 首页 > news >正文

onnx模型转换opset版本和固定动态输入尺寸

 背景:之前我想把onnx模型从opset12变成opset12,太慌乱就没找着,最近找到了官网上有示例的,大爱onnx官网,分享给有需求没找着的小伙伴们。

1. onnx模型转换opset版本

官网示例:

import onnx
from onnx import version_converter, helper# Preprocessing: load the model to be converted.
model_path = "path/to/the/model.onnx"
original_model = onnx.load(model_path)print(f"The model before conversion:\n{original_model}")# A full list of supported adapters can be found here:
# https://github.com/onnx/onnx/blob/main/onnx/version_converter.py#L21
# Apply the version conversion on the original model
converted_model = version_converter.convert_version(original_model, <int target_version>)print(f"The model after conversion:\n{converted_model}")

其github地址如下:

onnx/docs/PythonAPIOverview.md at main · onnx/onnx (github.com)icon-default.png?t=N7T8https://github.com/onnx/onnx/blob/main/docs/PythonAPIOverview.md#converting-version-of-an-onnx-model-within-default-domain-aionnx其小伙伴拉到gitee上的地址如下(以防有的小伙伴github打不开):

docs/PythonAPIOverview.md · meiqicheng/github-onnx-onnx - Gitee.comicon-default.png?t=N7T8https://gitee.com/meiqicheng1216/onnx/blob/master/docs/PythonAPIOverview.md#converting-version-of-an-onnx-model-within-default-domain-aionnx最后附上完整代码:

import onnx
from onnx import version_converter, helper# A full list of supported adapters can be found here:
# https://github.com/onnx/onnx/blob/main/onnx/version_converter.py#L21
# Apply the version conversion on the original model# Preprocessing: load the model to be converted.
model_path = r"./demo.onnx"
original_model = onnx.load(model_path)
print(f"The model before conversion:\n{original_model}")converted_model = version_converter.convert_version(original_model, 11)
print(f"The model after conversion:\n{converted_model}")save_model = model_path[:-5] + "_opset11.onnx"
onnx.save(converted_model, save_model)

2. onnx模型转固定动态输入尺寸

def change_dynamic_input_shape(model_path, shape_list: list):"""将动态输入的尺寸变成固定尺寸Args:model_path: onnx model pathshape_list: [1, 3, ...]Returns:"""import osimport onnxmodel_path = os.path.abspath(model_path)output_path = model_path[:-5] + "_fixed.onnx"model = onnx.load(model_path)# print(onnx.helper.printable_graph(model.graph))inputs = model.graph.input  # inputs是一个列表,可以操作多输入~# look_input = inputs[0].type.tensor_type.shape.dim# print(look_input)# print(type(look_input))# inputs[0].type.tensor_type.shape.dim[0].dim_value = 1for idx, i_e in enumerate(shape_list):inputs[0].type.tensor_type.shape.dim[idx].dim_value = i_e# print(onnx.helper.printable_graph(model.graph))onnx.save(model, output_path)if __name__ == "__main__":model_path = "./demo.onnx"shape_list = [1]change_dynamic_input_shape(model_path, shape_list)

相关文章:

onnx模型转换opset版本和固定动态输入尺寸

背景&#xff1a;之前我想把onnx模型从opset12变成opset12&#xff0c;太慌乱就没找着&#xff0c;最近找到了官网上有示例的&#xff0c;大爱onnx官网&#xff0c;分享给有需求没找着的小伙伴们。 1. onnx模型转换opset版本 官网示例&#xff1a; import onnx from onnx im…...

远程运维如何更高效的远程管理?向日葵的这几项功能会帮到你

远程运维如何更高效的远程管理&#xff1f;向日葵的这几项功能会帮到你 具备一定规模的企业&#xff0c;其IT运维需求普遍会面临设备数量众多、难以统一高效管理、始终存在安全敞口等问题&#xff0c;尤其是针对分部广泛的无人值守设备时&#xff0c;更是如此。 举一个简单的例…...

python BDD 的相关概念

在Python 语言中进行BDD的规格和测试文件的编写的时候&#xff0c;常常会遇到下面的概念&#xff1a; Fixture : 测试设施。设定测试环境的预设状态或值的机制。Background&#xff1a; 背景。所有场景的公共部分。Scenario&#xff1a; 场景。Given &#xff1a; 前置条件Whe…...

【Exception】Error: Dynamic require of “path“ is not supported

Talk is cheap, show me the code. 环境 | Environment kversionOSwindows 11Node.jsv18.14.2npm9.5.0vite5.0.0vue3.3.8 报错日志 | Error log >npm run dev> app10.0.0 dev > viteERROR failed to load config from C:\code\frontend\app1\vite.config.js …...

【蓝桥杯选拔赛真题25】C++两个数比大小 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++两个数比大小 一、题目要求 1、编程实现 2、输入输出 二、算法分析...

C++学习——C++运算符重载(含义、格式、示例、遵循的规则)

以下内容源于C语言中文网的学习与整理&#xff0c;非原创&#xff0c;如有侵权请告知删除。 一、运算符重载的含义 所谓重载&#xff0c;就是赋予新的含义。函数重载&#xff08;Function Overloading&#xff09;可以让一个函数名有多种功能&#xff0c;在不同情况下进行不同…...

【unity实战】unity3D中的PRG库存系统和换装系统(附项目源码)

文章目录 先来看看最终效果前言素材简单绘制库存UI前往mixamo获取人物模型动画获取一些自己喜欢的装备物品模型库存系统换装系统装备偏移问题添加消耗品最终效果源码完结 先来看看最终效果 前言 之前2d的换装和库存系统我们都做过不少了&#xff0c;这次就来学习一个3d版本的&…...

编程语言发展史:C语言的诞生及其影响

预计更新 第一部分&#xff1a;早期编程语言 1.1布尔代数和机器语言 1.2汇编语言的出现和发展 1.3高级语言的兴起 第二部分&#xff1a;主流编程语言 1.1 C语言的诞生及其影响 1.2 C语言的发展和应用 1.3 Java语言的出现和发展 1.4 Python语言的兴起和特点 1.5 JavaScript语言…...

(二)pytest自动化测试框架之添加测试用例步骤(@allure.step())

前言 在编写自动化测试用例的时候经常会遇到需要编写流程性测试用例的场景&#xff0c;一般流程性的测试用例的测试步骤比较多&#xff0c;我们在测试用例中添加详细的步骤会提高测试用例的可阅读性。 allure提供的装饰器allure.step()是allure测试报告框架非常有用的功能&am…...

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏2(附项目源码)

文章目录 先看看最终效果前言生成走廊生成房间修复死胡同增加走廊宽度获取走廊位置信息集合方法一方法二 源码完结 先看看最终效果 前言 上期已经实现了房间的生成&#xff0c;本期紧跟着上期内容&#xff0c;生成走廊并结合上期内容生成连通的房间。 生成走廊 修改Procedur…...

潮玩宇宙大逃杀游戏开发源码说明

潮玩宇宙大逃杀游戏是一款简单而刺激的游戏。玩家在倒计时结束前从8个房间中选择一个房间并投入宝石。倒计时结束后&#xff0c;系统会自动生成一个敌人&#xff0c;然后随机挑选一个房间并清除这个房间内的人。其余7个房间内的玩家就可以按照投入比例获得被清除掉玩家的宝石。…...

UE5 操作WebSocket

插件&#xff1a;https://www.unrealengine.com/marketplace/zh-CN/product/websocket-client 参考&#xff1a;http://dascad.net/html/websocket/bp_index.html 1. 安装Plugings 2.测试websocket服务器 http://www.websocket-test.com/ 3.连接服务器 如果在Level BP里使用&a…...

Linux文件

目录 一、基本概念 二、研究进程和被打开文件的关系 &#xff08;一&#xff09;w方式 &#xff08;二&#xff09;a方式 三、认识系统接口&#xff0c;操作文件 &#xff08;一&#xff09;认识文件描述符 &#xff08;二&#xff09;举例 &#xff08;三&#xff09;…...

素短语的定义

素短语&#xff0c;是指至少含有一个终结符的短语&#xff0c;并且除自身外&#xff0c;不包含更小的素短语。 最左素短语是句型中最左边的素短语。...

【华为OD题库-033】经典屏保-java

题目 DVD机在视频输出时&#xff0c;为了保护电视显像管&#xff0c;在待机状态会显示"屏保动画”&#xff0c;如下图所示,DVD Logo在屏幕内来回运动&#xff0c;碰到边缘会反弹:请根据如下要求&#xff0c;实现屏保Logo坐标的计算算法 1、屏幕是一个800 * 600像素的矩形&…...

clang+llvm多进程gdb调试

clangllvm多进程gdb调试 前言1. 命令行gdb2. 父进程调试3. 子进程调试4. 返回父进程 前言 在学习新增llvm的优化pass时&#xff0c;需要跟踪clang及llvm的调用栈。然而llvm通过posix_spawn()创建了新进程&#xff0c;这使得gdb调试必须有一定的技巧了。 1. 命令行gdb 以下命…...

PHP反序列化简单使用

注&#xff1a;比较简陋&#xff0c;仅供参考。 编写PHP代码&#xff0c;实现反序列化的时候魔法函数自动调用计算器 PHP反序列化 serialize(); 将对象序列化成字符串 unserialize(); 将字符串反序列化回对象 创建类 class Stu{ public $name; public $age; public $sex; publi…...

专业课140+总分420+东南大学920专业综合考研,信息学院通信专业考研分享

专业课140总分420东南大学920专业综合考研&#xff0c;信息学院通信专业考研分享 我是三月开始系统考研备战&#xff0c;寒假先看的高数全书&#xff0c;奈何在家效率极其低下&#xff0c;才草草看了前三四章。回校后学习的比较认真&#xff0c;每天大概保持10个小时左右&…...

数据结构与算法编程题11

已知两个链表A和B分别表示两个集合&#xff0c;其元素递增排列。 请设计算法求出A与B的交集&#xff0c;并存放于A链表中。 a: 1, 2, 2, 4, 5, 7, 8, 9, 10 b: 1, 2, 3, 6, 7, 8 #include <iostream> using namespace std;typedef int Elemtype; #define ERROR 0; #defin…...

【LeetCode刷题】--40.组合总和II

40.组合总和II 本题详解&#xff1a;回溯算法 class Solution {public List<List<Integer>> combinationSum2(int[] candidates, int target) {int len candidates.length;List<List<Integer>> res new ArrayList<>();if (len 0) {return re…...

zynq7010和zynq7020的区别

Zynq-7010 和 Zynq-7020 是 Xilinx&#xff08;现 AMD&#xff09;Zynq-7000 系列中两款常见的 SoC&#xff0c;主要区别在于 FPGA 逻辑资源&#xff0c;PS&#xff08;处理器系统&#xff09;部分完全相同&#xff08;双核 ARM Cortex-A9&#xff0c;主频最高 766MHz/1GHz&…...

RAGFlow 系列教程 第十一课:文本分块策略详解

系列: RAGFlow v0.25.0 源码深度解析 作者: 耿雨飞 前置知识: 已完成第十课"LLM 抽象层 – 统一模型接口"的学习 导读 在 RAG(检索增强生成)系统中,文本分块是连接"文档解析"与"向量检索"的关键桥梁。分块质量直接决定了检索精度和生成质量—…...

1Fichier下载管理器:3步实现零等待高速下载的终极解决方案

1Fichier下载管理器&#xff1a;3步实现零等待高速下载的终极解决方案 【免费下载链接】1fichier-dl 1Fichier Download Manager. 项目地址: https://gitcode.com/gh_mirrors/1f/1fichier-dl 你是否厌倦了在1Fichier平台上漫长的等待时间和缓慢的下载速度&#xff1f;1F…...

从零到精通:FanControl让你的Windows风扇控制从此变得智能又简单 [特殊字符]

从零到精通&#xff1a;FanControl让你的Windows风扇控制从此变得智能又简单 &#x1f3af; 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcod…...

多模型路由系统的工程决策:从成本约束到动态降级的架构设计

在 AI 工程落地中&#xff0c;模型调用不再是‘选最优模型’的简单问题。当业务面临成本压力、额度限制与稳定性要求三重约束时&#xff0c;系统必须能在主模型不可用或成本过高时&#xff0c;自动、无感地切换到备用模型&#xff0c;同时保证用户体验不出现断崖式下跌。本文基…...

告别传统建模:如何用手机照片和Instant-NGP快速生成3D模型?

手机摄影革命&#xff1a;零代码实现高精度3D建模的NeRF实战指南 当我在2022年第一次用手机拍摄的20张玩具照片生成可360旋转的3D模型时&#xff0c;传统建模软件正在我的MacBook Pro上缓慢渲染一个简单几何体——这个对比让我意识到&#xff0c;计算机视觉领域正在发生一场静悄…...

双生态 GEO 落地方法论:从 Findable / Scannable / Verifiable 三层重构 AI 可见度

引言&#xff1a;GEO 是技术问题&#xff0c;不是文案问题 很多负责品牌技术内容的工程师会观察到一个现象&#xff1a;官网做了 SEO 该做的全套 —— sitemap、metadata、structured data、内链优化 —— 但 ChatGPT、Gemini、豆包、DeepSeek 在生成回答时&#xff0c;几乎不…...

CT影像三维重建翻车?可能是Patient Position这个Tag在捣鬼

CT影像三维重建中的空间错位&#xff1a;Patient Position标签的隐秘影响 当你在深夜的实验室里盯着屏幕上那个上下颠倒的肺部三维模型时&#xff0c;咖啡已经喝到第三杯——这可能是Patient Position标签在作祟。医学影像三维重建过程中的空间错位问题&#xff0c;往往源于DIC…...

Python内存泄漏诊断实战(GIL下隐秘泄漏源全曝光)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Python内存泄漏诊断实战&#xff08;GIL下隐秘泄漏源全曝光&#xff09; 在CPython中&#xff0c;全局解释器锁&#xff08;GIL&#xff09;虽保障线程安全&#xff0c;却常掩盖对象生命周期异常——尤…...

告别手动:用GitHub Actions自动化你的京东签到脚本,实现7x24小时云挂机

云端自动化实践&#xff1a;基于GitHub Actions的京东签到系统搭建指南 从本地到云端的进化之路 去年夏天&#xff0c;当我第37次忘记手动执行京东签到脚本时&#xff0c;看着错失的京豆奖励&#xff0c;终于下定决心研究自动化方案。本地脚本虽然能完成基本功能&#xff0c;但…...