onnxruntime 使用,删除、修改

输出中间层数据(python)

import onnx
from onnx import helper

model = onnx.load("C:/Users/Desktop/fastscnn_0907_fix.onnx")
#名字命名为想要输出层对应的节点名,参数类型、维度,需要自己给出
info =  helper.make_tensor_value_info('552',onnx.TensorProto.INT64, [1,1280, 1280])
#将构建的输出插入到模型中
model.graph.output.insert(0, info)
onnx.save(model, 'C:/Users/Desktop/out.onnx')

删除节点

import onnx
from onnx import helper

model = onnx.load("C:/Users/Desktop/fastscnn_0907_fix.onnx")
graph = model.graph
nodes = graph.node
for i in range(len(nodes)):
    print(i,nodes[i])
#通过打印查看想要删除的节点,并记录删除节点位置i
#删除节点,255为所有节点nodes的索引
graph.node.remove(nodes[255])
#检查模型
onnx.checker.check_model(model)
#保存新模型
onnx.save(model, 'C:/Users/Desktop/out.onnx')

修改节点,可通过先删除,再插入的方式

import onnx
from onnx import helper

model = onnx.load("C:/Users/Desktop/fastscnn.onnx")
graph = model.graph
nodes = graph.node
for i in range(len(nodes)):
    print(i,nodes[i])
#通过打印查看想要删除的节点,并记录删除节点位置i
#删除节点,255为所有节点nodes的索引
graph.node.remove(nodes[255])
#插入新节点
new_node = onnx.helper.make_node(
    "Unsqueeze",
    inputs=[''],
    outputs=['output'],
    axes = [0],
  )  
graph.node.insert(255, new_node)
#检查模型
onnx.checker.check_model(model)
#保存新模型
onnx.save(model, 'C:/Users/Desktop/out.onnx')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值