用python将ONNX 模型节点名称中的 . 改成 _

参考这位博主

ONNX 模型节点名称的修改_onnx修改节点名称-CSDN博客

将其做一些增加,因为博主的代码,只能改动输入和输出,

如图所示:


不能改动节点的命名,后期转换还是有问题,在以上博主代码基础上,增加以下黄色代码部分,可以全部转换


# -*- coding: UTF-8 -*-

# ONNX 模型节点名称的修改

import onnx
import sys

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("usage:program onnx-model")
        exit()

    model_name = sys.argv[1]
    onnx_model = onnx.load(model_name)
    graph = onnx_model.graph
    nodes = graph.node
    inputs = graph.input
    outputs = graph.output
    initializers = graph.initializer

    inputs[0].name = inputs[0].name.replace(".", "_")

    for i in range(len(nodes)):
        for j in range(len(nodes[i].input)):
            if "." in nodes[i].input[j]:
                nodes[i].input[j] = nodes[i].input[j].replace(".", "_")

        for j in range(len(nodes[i].output)):
            if "." in nodes[i].output[j]:
                nodes[i].output[j] = nodes[i].output[j].replace(".", "_")

    for i in range(len(initializers)):
        if "." in initializers[i].name:
            initializers[i].name = initializers[i].name.replace(".", "_")

    for i in range(len(nodes)):
        if "." in nodes[i].name:
            nodes[i].name = nodes[i].name.replace(".", "_")

    onnx.checker.check_model(onnx_model)
    onnx.save(onnx_model, "out.onnx")

控制台运行:

python xxxx.py xxxx.onnx

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值