一、目标
这个dbnet.onnx是paddleocr转出来的,自带的有paddle的那个hardsigmoid算子 ,这个不好转到trt等框架,因此我们想把这个hardsigmoid 算子op替换成我们常规的pytorch框架转出来的hardsigmoid onnx那种。
二、做法
给出代码如下:
import onnx
from onnx import helper# 加载 dbnet.onnx 和 hardwsigmoid.onnx 文件
dbnet_model = onnx.load("dbnet.onnx")# 获取 dbnet.onnx 的图结构
dbnet_graph = dbnet_model.graph# 获取onnx节点
node = dbnet_graph.node# 对节点类型HardSigmoid&输出为225的节点进行操作
old_node = []
for i, node_ in enumerate(node):if node_.op_type == "HardSigmoid":node_rise = node_if node_rise.output[0] == 'hardsigmoid_0.tmp_0':print(i)old_node.append(node_rise)name_ = old_node[0].output[0]