ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch, MXNet)可以采用相同格式存储模型数据并交互。
目前官方支持加载ONNX模型并进行推理的深度学习框架有: Caffe2, PyTorch, MXNet,ML.NET,TensorRT 和 Microsoft CNTK,并且 TensorFlow 也非官方的支持ONNX。使得我们的算法及模型在不同的框架之间的迁移。
安装paddle2onnx转换工具
pip install paddle2onnx
转换命令
paddle2onnx --model_dir /workspace/PaddleVideo-develop/fat_inference_pptsm_6.27 \
--model_filename ./model.pdmodel \
--params_filename ./model.pdiparams\
--save_file ./model.onnx \
--enable_dev_version True
运行onnx格式的模型
import onnx
import onnxruntime as rt
input_img=[.....]
#onnx inference
sess=rt.InferenceSession(onnx_path)
input_name=sess.get_inputs()[0].name
output_name=sess.get_outputs()[0].name
result=sess.run([output_name],{input_name:input_img[0]})
# print(np.array(result))