一、将训练好的模型转换格式为ONNX格式
例如pytorch模型转换:
def torch2onnx(model, save_path):
"""
:param model:
:param save_path: XXX/XXX.onnx
:return:
"""
model.eval()
data = torch.rand(1, 3, 224, 224)
input_names = ["input"]
output_names = ["out"]
torch.onnx._export(model, data, save_path, export_params=True, opset_version=11, input_names=input_names, output_names=output_names)
print("torch2onnx finish.")
支持动态形状的输入和输出:
def torch2onnx_dynamic(model, save_path):
"""
:param model:
:param save_path: XXX/XXX.onnx
:return:
"""
model.eval()
data = torch.rand(1, 3, 224, 224)
input_names = ["input"] # ncnn需要
output_names = ["out"]