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 模型的正确性, 建议打开此开关, 默认为 True |
--enable_auto_update_opset | [可选] 是否开启 opset version 自动升级功能,当低版本 opset 无法转换时,自动选择更高版本的 opset进行转换, 默认为 True |
--deploy_backend | [可选] 量化模型部署的推理引擎,支持 onnxruntime/rknn/tensorrt, 默认为 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
,也可使用如下命令对模型进行优化
pip install onnxslim
onnxslim model.onnx slim.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.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fb6353e1a1eadddbf76f95ec2f88a3f6ca4e353b5ad83e7811de83b65eafeaa |
|
MD5 | 7312fedde33897550130da20d36a7042 |
|
BLAKE2b-256 | b0737abac76c99ef2b47eb0fb7b899c369914c21a37628584721e002c35d9c26 |
Hashes for paddle2onnx-1.2.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04dfbec99fdae692bc99897215bf8ae96db6930bbcf608aab8ba36b62f687fc5 |
|
MD5 | 168afc98483f92a91eb6e4e430202696 |
|
BLAKE2b-256 | 3c852af8139091981e57bf806715f55579af9050c9faae630e2370c2222186ee |
Hashes for paddle2onnx-1.2.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa13ec64257ffc8bbe651d5a5fa44d4063a4267a0a61dc692d76dcf5ffaa23d1 |
|
MD5 | 19f39c9cb39141abf7c81ae6e9f27c72 |
|
BLAKE2b-256 | d2ccad3f8ffbbe25ee9be706b21f1cff769b15277411e0682acbdcd77aef6309 |
Hashes for paddle2onnx-1.2.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17d67dbf02971f8c5035212c3b5403c0e7cbbbea07948ddfaa0e8521cd012596 |
|
MD5 | a853ded0e9ad68144739adbe2ebca40d |
|
BLAKE2b-256 | c0abbff5ee992c3b95d6a57eab5d259f5be0b792f4ac3a74cd1593837a14a99c |
Hashes for paddle2onnx-1.2.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8554a7cebcb8b3a6e6eb6c1677199e957315abcc6553eb5841256b9bd40d4b7e |
|
MD5 | a7ca6f4ea3532635f2c24c9ddc5a8a15 |
|
BLAKE2b-256 | 14d235016aecddc9fc9d13d5689066d8fa55c63cab1a43bcd5143e5949f31a38 |
Hashes for paddle2onnx-1.2.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b84951ee4c87aee492a861d66b49fcdcf885a3701f2eb40a15b488a7ca489a46 |
|
MD5 | 715b42f73e4d6d0083a163ba3fcce67f |
|
BLAKE2b-256 | 60892c0670b0c6479f98277e6cd61db0e171c228c63c8908499d9440710bd5bd |
Hashes for paddle2onnx-1.2.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a2bae94f6c0db92225b788c5ea078747b3d1777a6c3b5f4fde81d209134453c |
|
MD5 | 19a3ca8a59b5988547ffc7355d4b98b9 |
|
BLAKE2b-256 | 685221b4d641fa43e477cf9bfbd465967389955ec6afe5c39dfa015269638854 |
Hashes for paddle2onnx-1.2.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d24f4bcda07ec66edffe9a910f834b043335919870fc7ebbc141eb73529943a |
|
MD5 | a72dfd5614bd0be4f988f87a4c1a339f |
|
BLAKE2b-256 | ce340cbad1a760771d3df08a37f9f818edc12906f7f13e5f88ba2ce4b59c9540 |
Hashes for paddle2onnx-1.2.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c75681a8b4d7f3d6eafc087d49ab9a28bd121308d4d5ef3c10cba13757186e7 |
|
MD5 | b6b9ce20b5c66dadc0fcd0ece8c180af |
|
BLAKE2b-256 | 483740d7034de5b1c02b749fb93f6067e0a95739d305536eae04de84e71eb59f |
Hashes for paddle2onnx-1.2.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 123aaf64965754996a1a7b5b5621f25c8eea6a79d6a118d478abe97d7ae8bad6 |
|
MD5 | e20d364fb4c3f232a4c4679548fa748b |
|
BLAKE2b-256 | fdaa7ee864fb499f3eb946a3706f956e982fc375f00ee4eb940a31ed5f3d7cec |