【深度学习】ONNX 模型文件修改节点的名称,修改输入名称,修改输出名称

这篇具有很好参考价值的文章主要介绍了【深度学习】ONNX 模型文件修改节点的名称,修改输入名称,修改输出名称。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

想要修改onnx模型文件的节点名称,要么在最初的pytorch代码里去改,要么就直接在onnx模型文件里改。

而我这里直接在onnx模型文件改,我有一个onnx文件,输出节点的名字是这样的:
onnx修改输出节点,深度学习机器学习,深度学习,python,人工智能
这不改就看着真难受,那么就用python改:

import onnx

# 加载模型文件
model = onnx.load("model.onnx")

# 修改输入输出张量的名称
idx_start = 0
for input in model.graph.input:
    for node in model.graph.node:
        # 如果当前节点的输入名称与待修改的名称相同,则将其替换为新名称
        for i, name in enumerate(node.input):
            if name == input.name:
                node.input[i] = "input_" + str(idx_start)
    input.name = "input_" + str(idx_start)
    idx_start += 1

idx_start = 0
for output in model.graph.output:
    for node in model.graph.node:
        # 如果当前节点的输入名称与待修改的名称相同,则将其替换为新名称
        for i, name in enumerate(node.output):
            if name == output.name:
                node.output[i] = "output_" + str(idx_start)
    output.name = "output_" + str(idx_start)
    idx_start += 1

# 保存修改后的模型
onnx.save(model, "modified_model.onnx")

改完后:
onnx修改输出节点,深度学习机器学习,深度学习,python,人工智能

其实修改其他节点的名称也可以这样去做,注意修改的是要关注到前后连接的节点。

验证一下改的东西对不对吧:文章来源地址https://www.toymoban.com/news/detail-618731.html

import numpy as np
import onnxruntime as ort

# 生成随机图像
# img = np.random.randint(-1, 1, (1, 3, 640, 640)).astype(np.float32)

img = np.load("img.npy")

# 加载模型
session = ort.InferenceSession("modified_model.onnx")
# 运行模型
output_new = session.run(None, {"input_0": img})

# 加载模型
session = ort.InferenceSession("model.onnx")
# 运行模型
output_old = session.run(None, {"x": img})

# 判断是否完全一样
print(np.allclose(output_new, output_old))

到了这里,关于【深度学习】ONNX 模型文件修改节点的名称,修改输入名称,修改输出名称的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习】【Opencv】【CPU】Python/C++调用onnx模型【基础】

    提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 OpenCV是一个基于BSD许可发行的跨平台计算机视觉和机器学习软件库(开源),可以运行在Linux、Windows、Android和Mac OS操作系统上。可以将pytorch中训练好的模型使用ONNX导出,再使用opencv中的dnn模块直接进行

    2024年02月04日
    浏览(36)
  • 【ONNX】使用 C++ 调用 ONNX 格式的 PyTorch 深度学习模型进行预测(Windows, C++, PyTorch, ONNX, Visual Studio, OpenCV)

    要使用 ONNX 模型进行预测,就需要使用 onnx runtime 首先到 ONNX 官网查询所需的版本 这里使用的 Windows,同时装了 CUDA 下面的链接可以进入到安装网址 https://www.nuget.org/packages/Microsoft.ML.OnnxRuntime.Gpu 安装命令为: 首先打开 Visual Studio 2019 新建一个用于测试的项目 右键点击项目,可

    2024年02月09日
    浏览(44)
  • onnxruntime推理时切换CPU/GPU以及修改onnx输入输出为动态

    前言 onnx模型作为中间模型,相较于pytorch直接推理,是有加速度效果的,且推理代码简单,不需要load各种网络。最近某些项目因为显存不够,onnxruntime推理时切换CPU/GPU,实现某些模型在CPU上推理,某些在GPU上推理。 查了一些别人的文章发现很多人都说onnxruntime推理没法像py

    2024年02月12日
    浏览(43)
  • Pytorch复习笔记--导出Onnx模型为动态输入和静态输入

    目录 1--动态输入和静态输入 2--Pytorch API 3--完整代码演示 4--模型可视化 5--测试动态导出的Onnx模型         当使用 Pytorch 将网络导出为 Onnx 模型格式时,可以导出为动态输入和静态输入两种方式。动态输入即模型输入数据的部分维度是动态的,可以由用户在使用模型时自主设

    2024年01月20日
    浏览(28)
  • python pytorch模型转onnx模型(多输入+动态维度)

    (多输入+动态维度)整理的自定义神经网络pt转onnx过程的python代码,记录了pt文件转onnx全过程,简单的修改即可应用。 预处理代码 与torch模型的预处理代码一样 导出结果 此处为检查onnx模型节点,后面如果onnx算子不支持转engine时,方便定位节点,找到不支持的算子进行修改

    2024年02月05日
    浏览(35)
  • 解决Opencv dnn模块无法使用onnx模型的问题(将onnx的动态输入改成静态)

    最近做人脸识别项目,想只用OpenCV自带的人脸检测和识别模块实现,使用OpenCV传统方法:Haar级联分类器人脸检测+LBPH算法人脸识别的教程已经有了,于是想着用OpenCV中的dnn模块来实现,dnn实现人脸检测也有(详细教程可见我的这篇博客https://blog.csdn.net/weixin_42149550/article/detai

    2024年02月05日
    浏览(33)
  • uniapp 修改本地文件名称

    uniapp下载文件本地saveFile之后,文件名是时间戳的形式。而且uniapp官网并没有文件修改的方法 折腾了一天,终于解决了。 直接上代码 使用plus.io的文件管理方法。(不得不吐槽一下,这个文档写的真的是云里雨雾) Tips:这个方法改的名字要带后缀的,也可以改成Promise方法 和

    2024年02月12日
    浏览(33)
  • 使用Python批量修改文件名称

    下载了一些图片,想要更改其文件的名称。 试了许多方法,都不太理想。 于是想到了使用Python来实现。 需要用到的模块及函数: rename() 函数用于改变文件或文件夹的名称。它接受两个参数:原文件名和新文件名。 os.listdir(‘路径’)函数用于返回给定路径下的文件名称列表

    2024年02月15日
    浏览(37)
  • C#修改解决方案的名称 和解决方案文件夹的名称 ,及项目程序名称,项目文件夹名称

    修改失败了,没有备份就得炸裂,一定要切记 右键项目- 属性 - 应用程序 先将 程序集名称 与 默认命名空间 先修改好 其次,在按组合键ctrl+ f 将原来的项目名称,替换成新的名称; 替换时,一定要针对整个解决方案进行替换 ----切记 关闭解决方案 ,一定要关闭 出现无法加

    2023年04月09日
    浏览(60)
  • 批量修改文件名称不生效,命令不正确

    操作方法: 1.在需要修改文件名的文件夹中新建一个文本文档,然后在里面编辑如下内容(此处以修改 .jpg 图片为例): dir *.jpg /b rename.xls (上面这条命令是将该文件夹内所有后缀名为 .jpg 的文件名放入文件名为 rename.xls 的文件中,若后缀是docx,那就是dir *.docx /b rename.xls如

    2024年02月06日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包