paddle2onnx支持将PaddlePaddle模型格式转化到ONNX模型格式。
- 模型格式,支持Paddle静态图和动态图模型转为ONNX,可转换由save_inference_model导出的静态图模型,使用方法请参考IPthon示例。动态图转换目前处于实验状态,将伴随Paddle 2.0正式版发布后,提供详细使用教程。
- 算子支持,目前稳定支持导出ONNX Opset 9~11,部分Paddle算子支持更低的ONNX Opset转换,详情可参考算子列表。
- 模型类型,官方测试可转换的模型请参考模型库。
python >= 2.7
静态图: paddlepaddle >= 1.8.0
动态图: paddlepaddle >= 2.0.0
onnx == 1.7.0 | 可选
pip install paddle2onnx
git clone https://github.com/PaddlePaddle/paddle2onnx.git
python setup.py install
Paddle模型的参数保存为多个文件(not combined):
paddle2onnx --model_dir paddle_model --save_file onnx_file --opset_version 10 --enable_onnx_checker True
Paddle模型的参数保存在一个单独的二进制文件中(combined):
paddle2onnx --model_dir paddle_model --model_filename model_filename --params_filename params_filename --save_file onnx_file --opset_version 10 --enable_onnx_checker True
参数 | 参数说明 |
---|---|
--model_dir | 配置包含Paddle模型的路径, 由paddle.fluid.io.save_inference_model 保存得到 |
--model_filename | [可选] 配置位于--model_dir 下存储网络结构的文件名称。当且仅当所有模型参数被保存在一个单独的二进制文件中,它才需要被指定。默认为None |
--params_filename | [可选] 配置位于--model_dir 下存储模型参数的文件名称。当且仅当所有模型参数被保存在一个单独的二进制文件中,它才需要被指定。默认为None |
--save_file | 指定转换后的模型保存目录路径 |
--opset_version | [可选] 配置转换为ONNX的OpSet版本,目前比较稳定地支持9、10、11三个版本,默认为9 |
--enable_onnx_checker | [可选] 配置是否检查导出为ONNX模型的正确性, 建议打开此开关。若指定为True,需要安装 onnx>=1.7.0, 默认为False |
--version | [可选] 查看paddle2onnx版本 |
- PaddlePaddle模型的两种存储形式:
- 参数被保存在一个单独的二进制文件中(combined),需要在指定--model_dir的前提下,指定--model_filename, --params_filename, 分别表示--model_dir目录下的网络文件名称和参数文件名称。
- 参数被保存为多个文件(not combined),只需要指定--model_dir,该目录下面需要包含了'__model__',以及多个参数文件。
处于实验状态,Paddle 2.0正式版发布后,会提供详细使用教程。
Provided under the Apache-2.0 license.