Skip to main content

Export PaddlePaddle to ONNX

Project description

Paddle2ONNX

简体中文 | English

1 Paddle2ONNX 简介

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

2 Paddle2ONNX 环境依赖

Paddle2ONNX 依赖PaddlePaddle3.0,我们建议您在以下环境下使用 Paddle2ONNX :

  • PaddlePaddle == 3.0.0b2
  • onnxruntime >= 1.10.0

3 安装 Paddle2ONNX

如果您只是想要安装 Paddle2ONNX 且没有二次开发的需求,你可以通过执行以下代码来快速安装 Paddle2ONNX

pip install paddle2onnx

如果你希望对 Paddle2ONNX 进行二次开发,请按照Github 源码安装方式编译Paddle2ONNX。

4 快速使用教程

4.1 获取PaddlePaddle部署模型

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

  • model_name.json: 表示模型结构
  • model_name.pdiparams: 表示模型参数

4.2 调整Paddle模型

如果对Paddle模型的输入输出需要做调整,可以前往Paddle 相关工具查看教程。

4.3 使用命令行转换 PaddlePaddle 模型

你可以通过使用命令行并通过以下命令将Paddle模型转换为ONNX模型

paddle2onnx --model_dir model_dir \
            --model_filename model.json \
            --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~19 等多个版本,默认为 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 模型有优化的需求,推荐使用 onnxslim 对模型进行优化:

pip install onnxslim
onnxslim model.onnx slim.onnx

5 代码贡献

繁荣的生态需要大家的携手共建,开发者可以参考 Paddle2ONNX 贡献指南 来为 Paddle2ONNX 贡献代码。

6 License

Provided under the Apache-2.0 license.

7 感谢捐赠

  • 感谢 PaddlePaddle 团队提供服务器支持 Paddle2ONNX 的 CI 建设。
  • 感谢社区用户 chenwhql, luotao1, goocody, jeff41404, jzhang553, ZhengBicheng 于2024年03月28日向 Paddle2ONNX PMC 捐赠共 10000 元人名币用于 Paddle2ONNX 的发展。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

paddle2onnx-2.0.0a5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

paddle2onnx-2.0.0a5-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

paddle2onnx-2.0.0a5-cp312-cp312-macosx_12_0_universal2.whl (3.1 MB view details)

Uploaded CPython 3.12macOS 12.0+ universal2 (ARM64, x86-64)

paddle2onnx-2.0.0a5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

paddle2onnx-2.0.0a5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

paddle2onnx-2.0.0a5-cp311-cp311-macosx_12_0_universal2.whl (3.1 MB view details)

Uploaded CPython 3.11macOS 12.0+ universal2 (ARM64, x86-64)

paddle2onnx-2.0.0a5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

paddle2onnx-2.0.0a5-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

paddle2onnx-2.0.0a5-cp310-cp310-macosx_12_0_universal2.whl (3.1 MB view details)

Uploaded CPython 3.10macOS 12.0+ universal2 (ARM64, x86-64)

paddle2onnx-2.0.0a5-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

paddle2onnx-2.0.0a5-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

paddle2onnx-2.0.0a5-cp39-cp39-macosx_12_0_universal2.whl (3.1 MB view details)

Uploaded CPython 3.9macOS 12.0+ universal2 (ARM64, x86-64)

paddle2onnx-2.0.0a5-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

paddle2onnx-2.0.0a5-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

paddle2onnx-2.0.0a5-cp38-cp38-macosx_12_0_universal2.whl (3.1 MB view details)

Uploaded CPython 3.8macOS 12.0+ universal2 (ARM64, x86-64)

File details

Details for the file paddle2onnx-2.0.0a5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f27e3f47e16bf4fd6d97e6e44e60bfc5c6d2871f8c9efe48cb0846cedb2226e0
MD5 a8cde2c3844b470a5ec1bd976088d459
BLAKE2b-256 ad309d1dee0259858cfd5afa019f803fbd530878f2753d080e3e5b312f7f7f9a

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 482c3208a65e7234eb4e0f54fbb9a001740b6752e60b8b82501ffe4643e8e9c3
MD5 dc896410945f8b26065298c10fffaae4
BLAKE2b-256 80ba2b76b581d0c65a8e335641cebd316e447b891b0e6d93b4de28d644b7d1d1

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp312-cp312-macosx_12_0_universal2.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp312-cp312-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 41f85aa8c36e2e19abadcb9e81d6532f7806ef63eaf2a93b8ae9d5cf7b4606eb
MD5 5adc5860db3018af0e9498ec7650f900
BLAKE2b-256 c761415cfd79b64e47a1e6152d436ca0234c6eceb71285a8f2d476ef516f3b70

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d29f1a397029a7aa382a956dde9d7befb299d5510bbf7fbc826bcc6475968494
MD5 af6c122f9a43d7f9af31819b351c19bc
BLAKE2b-256 b1b01c7089a9f647635e2467d159ec3a1e4127da1e424aaf731d7748e41e0df1

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 384922ac36e5a8f3b4381b1ff6aabd4ce7383e7ac4a6e26cf92985f6d566047c
MD5 fb747ab69db4f74247dc2ff6ae8efac6
BLAKE2b-256 6f968589ba832b25f49c8079647c4489249ff1315cc08f3e53f61028e0b64d43

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp311-cp311-macosx_12_0_universal2.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp311-cp311-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 bad185c9babee8afe3be311c595d7d2fdb480a13d2f6ff0a28ff312606c93a42
MD5 65abd698bdae1c7c41cf9d728321eb49
BLAKE2b-256 1aeb12337aa01a7bc2695402a1bb1fd8e4a2fde854a080399b34894b9c1d4ad5

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eb99dfa6d60c6e8c1e84b11527cbab5b06de700aa9f3d3b741ca404407a4aaa4
MD5 55f16a552edc66d1fd8044145474e5b4
BLAKE2b-256 483214ebc3218e11793858247e05a51f65fb1434bf580a2affeea31689253539

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8e4ed961bed19e033f8ad80439240d6ddb62e280be7e1546977798bec835400b
MD5 0294ba92472ab0a9a16ff6467dd81eb8
BLAKE2b-256 41e723eac77fbcaca7b2b764d023e4c2a5a6fdf757b7f2fbc8dba9f87b7f2c04

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp310-cp310-macosx_12_0_universal2.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp310-cp310-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 6dfff6a7ae1d598a324d7105dd6e83111929662fea284d82611a50f3d1d4819d
MD5 578b2a7c9638d6b4aa7a8d8dc4fd67d2
BLAKE2b-256 890bbbb9d0332969e98fc914b5c88d38636f3ce6929583ab957862419aa8f8fb

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 40bb3dd1ecc9a0777f0a6024cff6893371420098dd6a71afcda2233a7c762127
MD5 a3d0941b1c435e2732c54e2872f7513a
BLAKE2b-256 45e43e7f6f1b22fe03e19cbc79d0dcd9d9360e0425b09723bf66edb1ecce420e

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6d2afc86df42a15c19c63b81b267547ba5a72b2cb354ea4089e0cb39343c5f7c
MD5 389cb9743a311fdf055493050024e667
BLAKE2b-256 bb4f7320029cadc4d3448b71d660d1cc6dd4dca9f6ed04a6d959706f3843afaf

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp39-cp39-macosx_12_0_universal2.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp39-cp39-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 06efc0dfe44479fc624101174621413d1a6e0e48837ff04ee5b48c8d07a86b0f
MD5 c6ccb5deb3385227d4c28d099eb9500b
BLAKE2b-256 388e0bf4b70a7f4154994d823923c46364f94215f23d6649a1211209fcf27994

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8d108bf8b92ffabb0a287e038664a212c41b86bfefa5d9dd9273d4028694164f
MD5 9c65865443ce7ce9161f320a9739393c
BLAKE2b-256 16e12b86396aad6c72ab7a27bc90cc33f1902adf7ccec34d94ae3e51a5005bab

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 da8c6b27831c514415b8e7eef62ee7ba0df4025304265470d1cd675c6a34a5c3
MD5 c1fe23eace360f79197be7dd386f2b9d
BLAKE2b-256 fb23016d79fbb556c77c9e80e5e5a5cc03a1aa1a4605534601269c9e1aa730cc

See more details on using hashes here.

File details

Details for the file paddle2onnx-2.0.0a5-cp38-cp38-macosx_12_0_universal2.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a5-cp38-cp38-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 b2bdc65402dbdcf36e28c2c0f39025d25068fcbd2dfd5c0ac9908f947d24d84b
MD5 9740eeb2f75f255eb4d11818d5439373
BLAKE2b-256 677fabfba075ecf6775b39a40d288b76fd9a2dc22a1d70d01d6c71db206e169e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page