一、目标
这个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]