Skip to content

yuanjim/Paddle2ONNX

 
 

Repository files navigation

Paddle2ONNX

简体中文 | English

简介

Paddle2ONNX支持将PaddlePaddle模型格式转化到ONNX模型格式。通过ONNX可以完成将Paddle模型到多种推理引擎的部署,包括TensorRT/OpenVINO/MNN/TNN/NCNN,以及其它对ONNX开源格式进行支持的推理引擎或硬件。

模型库

Paddle2ONNX建设了一个飞桨热点模型的模型库,包括PicoDet、OCR、HumanSeg等多种领域模型,有需求的开发者可直接下载使用,进入目录model_zoo了解更多详情!

环境依赖

安装

pip install paddle2onnx

使用

获取PaddlePaddle部署模型

Paddle2ONNX在导出模型时,需要传入部署模型格式,包括两个文件

  • model_name.pdmodel: 表示模型结构
  • model_name.pdiparams: 表示模型参数 [注意] 这里需要注意,两个文件其中参数文件后辍为.pdiparams,如你的参数文件后辍是.pdparams,那说明你的参数是训练过程中保存的,当前还不是部署模型格式。 部署模型的导出可以参照各个模型套件的导出模型文档。

命令行转换

paddle2onnx --model_dir saved_inference_model \
            --model_filename model.pdmodel \
            --params_filename model.pdiparams \
            --save_file model.onnx \
            --enable_dev_version True

如你有ONNX模型优化的需求,推荐使用onnx-simplifier,也可使用如下命令对模型进行优化

python -m paddle2onnx.optimize --input_model model.onnx --output_model new_model.onnx

如需要修改导出的模型输入形状,如改为静态shape

python -m paddle2onnx.optimize --input_model model.onnx \
                               --output_model new_model.onnx \
                               --input_shape_dict "{'x':[1,3,224,224]}"

PaddleSlim量化模型导出请参考:量化模型导出ONNX

参数选项

参数 参数说明
--model_dir 配置包含Paddle模型的目录路径
--model_filename [可选] 配置位于--model_dir下存储网络结构的文件名
--params_filename [可选] 配置位于--model_dir下存储模型参数的文件名称
--save_file 指定转换后的模型保存目录路径
--opset_version [可选] 配置转换为ONNX的OpSet版本,目前支持7~15等多个版本,默认为9
--enable_dev_version [可选] 是否使用新版本Paddle2ONNX(推荐使用),默认为False
--enable_onnx_checker [可选] 配置是否检查导出为ONNX模型的正确性, 建议打开此开关。若指定为True, 默认为False
--enable_auto_update_opset [可选] 是否开启opset version自动升级,当低版本opset无法转换时,自动选择更高版本的opset 默认为True
--input_shape_dict [可选] 配置输入的shape, 默认为空; 此参数即将移除,如需要固定Paddle模型输入Shape,请使用此工具处理
--deploy_backend [可选] 量化模型部署的推理引擎,支持onnxruntime、tensorrt或others,当选择others时,所有的量化信息存储于max_range.txt文件中,默认为onnxruntime
--version [可选] 查看paddle2onnx版本
  • 使用onnxruntime验证转换模型, 请注意安装最新版本(最低要求1.10.0):

License

Provided under the Apache-2.0 license.

About

ONNX Model Exporter for PaddlePaddle

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 68.7%
  • C++ 23.5%
  • Jupyter Notebook 7.2%
  • Other 0.6%