import onnx
from onnx import helper, shape_inference
# 加载现有的ONNX模型
model_path = '/home/aistudio/model_breast.onnx'
model = onnx.load(model_path)
# 修改输入节点名称
for node in model.graph.node:
for i, name in enumerate(node.input):
if name == "x":
node.input[i] = "input"
# 更新模型的输入名称
for input_tensor in model.graph.input:
if input_tensor.name == "x":
input_tensor.name = "input"
# 打印原始输出节点的名称
print("Original output nodes:")
for output_tensor in model.graph.output:
print(output_tensor.name)
# 修改模型的输出节点名称
for output_tensor in model.graph.output:
if output_tensor.name == "softmax_1.tmp_0":
output_tensor.name = "output"
# 修改softmax节点的输出名称
for node in model.graph.node:
if node.op_type == "Softmax":
for i, name in enumerate(node.output):
if name == "softmax_1.tmp_0":
node.output[i] = "output"
# 打印修改后的输出节点名称
print("Modified output nodes:")
for output_tensor in model.graph.output:
print(output_tensor.name)
# 检查softmax节点的输出
for node in model.graph.node:
if node.op_type == "Softmax":
print(f"Softmax node outputs: {node.output}")
# 推断模型的形状信息
model = shape_inference.infer_shapes(model)
# 保存修改后的模型
onnx.save(model, 'modified_model_breastfake.onnx')
将paddle分类模型导出的onnx图的,输入“x”改为“input”,将“softmax_1.tmp_0”改为“output”。以适用于mmdeploy