Export PaddlePaddle to ONNX
Project description
Paddle2ONNX
简体中文 | English
1 Paddle2ONNX 简介
Paddle2ONNX 支持将 PaddlePaddle 模型格式转化到 ONNX 模型格式。通过 ONNX 可以完成将 Paddle 模型到多种推理引擎的部署,包括 TensorRT/OpenVINO/MNN/TNN/NCNN,以及其它对 ONNX 开源格式进行支持的推理引擎或硬件。
2 Paddle2ONNX 环境依赖
Paddle2ONNX 本身不依赖其他组件,但是我们建议您在以下环境下使用 Paddle2ONNX :
- PaddlePaddle == 2.6.0
- onnxruntime >= 1.10.0
3 安装 Paddle2ONNX
如果您只是想要安装 Paddle2ONNX 且没有二次开发的需求,你可以通过执行以下代码来快速安装 Paddle2ONNX
pip install paddle2onnx
如果你希望对 Paddle2ONNX 进行二次开发,请按照Github 源码安装方式编译Paddle2ONNX。
4 快速使用教程
4.1 获取PaddlePaddle部署模型
Paddle2ONNX 在导出模型时,需要传入部署模型格式,包括两个文件
model_name.pdmodel
: 表示模型结构model_name.pdiparams
: 表示模型参数
4.2 调整Paddle模型
如果对Paddle模型的输入输出需要做调整,可以前往Paddle 相关工具查看教程。
4.3 使用命令行转换 PaddlePaddle 模型
你可以通过使用命令行并通过以下命令将Paddle模型转换为ONNX模型
paddle2onnx --model_dir saved_inference_model \
--model_filename model.pdmodel \
--params_filename model.pdiparams \
--save_file model.onnx
可调整的转换参数如下表:
参数 | 参数说明 |
---|---|
--model_dir | 配置包含 Paddle 模型的目录路径 |
--model_filename | [可选] 配置位于 --model_dir 下存储网络结构的文件名 |
--params_filename | [可选] 配置位于 --model_dir 下存储模型参数的文件名称 |
--save_file | 指定转换后的模型保存目录路径 |
--opset_version | [可选] 配置转换为 ONNX 的 OpSet 版本,目前支持 7~16 等多个版本,默认为 9 |
--enable_onnx_checker | [可选] 配置是否检查导出为 ONNX 模型的正确性, 建议打开此开关, 默认为 False |
--enable_auto_update_opset | [可选] 是否开启 opset version 自动升级功能,当低版本 opset 无法转换时,自动选择更高版本的 opset进行转换, 默认为 True |
--deploy_backend | [可选] 量化模型部署的推理引擎,支持 onnxruntime、tensorrt 或 others,当选择 others 时,所有的量化信息存储于 max_range.txt 文件中,默认为 onnxruntime |
--save_calibration_file | [可选] TensorRT 8.X版本部署量化模型需要读取的 cache 文件的保存路径,默认为 calibration.cache |
--version | [可选] 查看 paddle2onnx 版本 |
--external_filename | [可选] 当导出的 ONNX 模型大于 2G 时,需要设置 external data 的存储路径,推荐设置为:external_data |
--export_fp16_model | [可选] 是否将导出的 ONNX 的模型转换为 FP16 格式,并用 ONNXRuntime-GPU 加速推理,默认为 False |
--custom_ops | [可选] 将 Paddle OP 导出为 ONNX 的 Custom OP,例如:--custom_ops '{"paddle_op":"onnx_op"},默认为 {} |
4.4 裁剪ONNX
如果你需要调整 ONNX 模型,请参考 ONNX 相关工具
4.5 优化ONNX
如你对导出的 ONNX 模型有优化的需求,推荐使用 onnx-simplifier
,也可使用如下命令对模型进行优化
python -m paddle2onnx.optimize --input_model model.onnx --output_model new_model.onnx
5 代码贡献
繁荣的生态需要大家的携手共建,开发者可以参考 Paddle2ONNX 贡献指南 来为 Paddle2ONNX 贡献代码。
6 License
Provided under the Apache-2.0 license.
7 感谢捐赠
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for paddle2onnx-1.2.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7da5002ca51ef5a56502d526dbcd7b7f4fc8b00785bd9f79745d95f30860e6da |
|
MD5 | 046f0d4d39a9812617b858815dec5ab1 |
|
BLAKE2b-256 | b98152891177dfbd36b31960b4e355510bbb65e8292201e3b6df6fbd17d70d95 |
Hashes for paddle2onnx-1.2.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c52699fcc7d5b6bd90f2b9b328ce5bcd43f5eeba6be6c4e9a4631fc5d8bddf10 |
|
MD5 | 82a04c94cb233408d08cb5a65546eb0e |
|
BLAKE2b-256 | 98c45fbe27a75be87feefc316be872915028592fe1f066bde075ab934c719c5a |
Hashes for paddle2onnx-1.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c59ccfe2022aa4f2efac14c01528426e3474534d9bb38497938ab6f87efab589 |
|
MD5 | 9496c0630b2c2dca7d7860a47c37addc |
|
BLAKE2b-256 | 3f2f744583587c857d94c18f4f137ebf89bbc95a4f8743bd75cc98aea711fc86 |
Hashes for paddle2onnx-1.2.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2935ce548659a66dd7324df71cd293eb1314b5f0793b54f66013f34a8eebca4d |
|
MD5 | ddf49f33aafbca9247f92f306d90c4b2 |
|
BLAKE2b-256 | f58420d6688f687ad73635fff33b5a48b8d7b88d78291c2a48e7c9f198d720b8 |
Hashes for paddle2onnx-1.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af1d3bc47d37b9b27fcdb0d41a003cb7e14bf1a68525d9dbc6cd44c1e683f096 |
|
MD5 | d099cd2909ce2f285a933a7028ced096 |
|
BLAKE2b-256 | 6d777d4081e07868137d242fba22cc6349aa10c417770405f1e84bb7c3c1d2d1 |
Hashes for paddle2onnx-1.2.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da6b8fe18d73bea615c6f37a23dc2374c63e604d9dd2746623014523f06c20a1 |
|
MD5 | 1c2d58f2b7841d02f8055dafc3882713 |
|
BLAKE2b-256 | 201ef8c17ce6f08d6c7b4828b1ce5205619547ca4f1b7ebe38e3ef5be3a0aa02 |
Hashes for paddle2onnx-1.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f9c554d6ba95507a25b7e3c7b9532f67c9e2907a5bf14fe08589f90a3ac2768 |
|
MD5 | 15fff0402a31c96d1ac9bb396668bb02 |
|
BLAKE2b-256 | 3f57b3b84b0939927363e750a58c00f63143f01a16c8cef3db715bbe4e9fc8a5 |
Hashes for paddle2onnx-1.2.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 294647af3a2e519dcd5ccd95252a04133a136e66733e1e2b1f6e88905167d52c |
|
MD5 | a526cc811c265a43b71b917f5b4b8c51 |
|
BLAKE2b-256 | f4996fbd127ca22c46ca5e861777c5395e6b95c2c396414959af5ea8b711dda5 |
Hashes for paddle2onnx-1.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20df2b364a5b1f0e6cdfe528a82fbb5922603814d2e86aa99981b48973729639 |
|
MD5 | 1361f13bf9b9287ba49903d4b255d5a6 |
|
BLAKE2b-256 | f7b63b76425395bdb771e1f1b59ee06da5fcf1c33d74721f7400eb4703aa543a |
Hashes for paddle2onnx-1.2.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2b343aafb313e3a61751842b53a1ea762889e24e6c2452e10df35fac6b6c38b |
|
MD5 | 1d41aa791d61f0b2c9e88ee8730a1beb |
|
BLAKE2b-256 | 9127189eb22cbe641d2f173cb567e2cfa1940291db05661caf9753fd0b7b0a21 |