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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-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.0a4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8009d18bb1cc3478985b03e329842bd2b76127a6c65a75461a14b3a44a2ff774
MD5 556203eb07fb6b7ce1d8845b6e501807
BLAKE2b-256 7d48614ffc8fb5e634f46439ba8e147f74841b72b3db5354e09417f2e87a9966

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 93a09b9f91c078472bcba834a5b936e6dd2b8ff56cb6b327034742eceda548fe
MD5 26412f8dc4d226af05d6bef7de40c636
BLAKE2b-256 2eab618c82e326e97b0b6cfedf57d2fd1ff90ef06644aa511b8c09ad8fb79128

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp312-cp312-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 0af6a11e95bd31068ad3123f9d4b4449dcd29a7f7f9b95d75b6afeda9dd19588
MD5 c7e9d03a806ce7cbb5456cbb757dbe69
BLAKE2b-256 b509509cfd57acb05a4dba9da31988a1437156f33830ea1f7853601e085541d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd4862ca60992384008c6ab7bc19877c538aebd3cb835d3219e5dffcd929aa2e
MD5 d72b0b5e32118000db319326fd62af3e
BLAKE2b-256 87417615a153050eaef2d01f87e5e091e8fede2f017070d89f6e59130a087cac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 39d709d5b113bff7d4bb841323c647e879720b42d0bbabfff6f609a51e9dde96
MD5 b82bdd5a9c860a13cb217372e1d7fd17
BLAKE2b-256 3ea2960ddb44b80f4c46f4c5c0dff340659c07f08c39250265e3015d0d0ace1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp311-cp311-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 fba7cc7697ee9dd14064be78b4803764e16969443d395bac2ad11545dd1854d4
MD5 0aa2b25cc2fc3cb3a9f08ae355bcb034
BLAKE2b-256 ef2d2267ae7931756cc593715c0cbee9544ff02427831eff8ca9fcf159b38f75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1488767d79e0cb4b955ab28e6ac5c6b29ab394c21375eb263998df3299675cc
MD5 d41d7507467f03cdd447ecde32404205
BLAKE2b-256 0ebe5ada894d9d092b17e4d69e71811453fdcfe89add64dffb27f3d97d4fedce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f6e5079361238daa1f1197443a3c4b378784a9feead5b384dce74c0f1350f2f3
MD5 5886063d9d833f69cd43ac9f015f3938
BLAKE2b-256 43baa8a18c8f1333ccf56b2b6fdad518fd40e7d83abc2dfe37e5df803f620a4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp310-cp310-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 4821ff786f886b41e931bd54c9cb1797a0ebc1a49d74a8abda72f8a6358382c5
MD5 c260f09a36c14db2e534bbc2539881c6
BLAKE2b-256 2d90f1a3b50dc4121c9dcd335e6b70d87f9546616d5f95eaee2ba91faf14ef02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 92eb2566b732f1da151b19f429a191ccee32385a378bad17f8eb3be654880f80
MD5 b4d5f58a4e0b92a2142008cb29749d61
BLAKE2b-256 5c2afad363f23e4ded4b36131d591868f1e5e209c18a030c9e0328ffdac3d578

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e31bd0615bad07e345854673fdc32210df9cd08922652575b014db14b58c6a4a
MD5 64e69e56c3de965af0357d65bbb65a47
BLAKE2b-256 a5c2a64c63500f09d7105a680b157d14259353568d7955d169c79457f7e4e564

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp39-cp39-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 5f27379af0d3f4b1a0926afef1a452b85e4398806a7958d548db52be9a6d9fcf
MD5 5a4bdae5835939bafd24764819ddb048
BLAKE2b-256 924cee5d568689ab3ec97ba28de3f3cc4e1069a0fa022cdb6d8ab3a551780e79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1084b08d266d892c34fdc31a7ec147bbc9cecd3f038c538c449cc061c2c193f
MD5 809ea2ad8ed2b951e2cd84fbeb55d6ac
BLAKE2b-256 930a1ac772679a7fff8c77f2fc83794e4c5cfdb9d5f64a7075909bcf6e7b9a1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 401c180a46005c2d6c0c6819ff64933f4e0465cbed7779770b90d6888e322a3f
MD5 3364c6d5b3be31eda9e91be573081ca4
BLAKE2b-256 485b0a9de607e63df3778ce465f13b4bc5903b4e95163d7a758714b26cac044a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a4-cp38-cp38-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 fb3d933af810cdfaccfdcdec13d5959c86ab86cb82eb51806e237ae5d97d9af7
MD5 c436174607f8f99e7ade7d4c23274fa0
BLAKE2b-256 aa0cdd86693d139b64570e23cdb80b3dc529658f3d46a1ad72cdbe0e19ef136c

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