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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a8d7141b073b94fb4e6bafb7e25cb40330e7c32b015e65d25ba15252aa5a262a
MD5 cda5e55f0547197c66cc85240abed041
BLAKE2b-256 af03f4df02e40b292de9c419aefcf1c5e88dd6104bb306c06f6f8b603f5cc6af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 67a71576cd82f7f82f17a0f798c081f80416ed66d02a62f8034b63f246cf7fbe
MD5 506be42bcef989be25c5244ea788812a
BLAKE2b-256 1f8fa3ed40cc8a5bfe1325c50cb9d85fb915964098f779651bb35a9d56150adc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp312-cp312-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 a3eb63383f22f3f084e5fcd5e6720b1775330648ba79999fd7ba5b17ae1eabfa
MD5 6e80bbf41db8955ef082722d4619a15f
BLAKE2b-256 4b0142ac96034d997f1e5550654b31efda1d30607aaad9c7b0e1232d1c146aea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1beec1a47edf44f6e7cde55b4479d249c78b5c2bf362feacca2dde0a04dd75dc
MD5 0cf73369138df42542394bcc8f8d09e2
BLAKE2b-256 4efe3dddd6aeb88b14f076f89d033debcf678b48e97b902917e860f3ae882d3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4b3a77070650df26910258c6c7fe9f093ca1e858556cc5401e16b8ca6ccd769a
MD5 b4108db545ac5dee7b2db32f42cc05fb
BLAKE2b-256 f6c87a6c202cc0bc0e1bbfe34941c23f36514ff4a8f15a99711b7bf99081a9c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp311-cp311-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 477fb5675dcd19c34ab2aade4efe399c4b4981e2887e400d53f8f1c13674a2b6
MD5 62d053cc0d30e1cfc6b8b38a5957eeba
BLAKE2b-256 ca5f155b8df8e35d2077dd08e925fae64dafec9ee45ca3b08586ad229de8c7f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d978c0e6b4f409f04e6332c1cde949337ec5f8371f72b80c21449552d70f163f
MD5 2587f80720ea35096fd52d93bfd7487c
BLAKE2b-256 a34459d06a7e0e238c5bf3bb4ac887ba98997ca8608dc3c5a3a867c387e2f64f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 55c7ac290b3651e19af88f965248e4c6b51dacebfa37827c73a15ff19538e6cd
MD5 1466553f065e5e34c8965fc0f8163e1d
BLAKE2b-256 f7e80427518f119fcd88931acd2d47b6bb9aeff0256a46cac473238cbf0a2300

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp310-cp310-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 057dc413726f2efc5626d3adbd97ca3f79c2f3f61f2bf382c4b72188f79539a4
MD5 1fcf067e234560b35e8241db7687718f
BLAKE2b-256 b6b4be7a0457b3e4487db883db0946575146c1778df8edc79f668912db414d70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cd6d71913681f0ffff4d7ea795835196d5a2701e5e68488328045c5c368d852e
MD5 e8eb758221fd4ffca368a7197ecc230a
BLAKE2b-256 56df434197613f3700215da183db30d0af117c3c2e32c206625f0c5a6c8bb3a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bb47e09f00bc3361c1b40204d123503f028b2a1699f65bc059fdf9b48e252992
MD5 115c455f4289870751b4ca457fbfd231
BLAKE2b-256 c8b5271390c531789ef263aabda87e43f5d31b25ba2e23b8308e92538d1973c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp39-cp39-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 5b2e60be24e3c86746682674e9394cf0ca86274d88e5fba105a85eb1ee181f16
MD5 85c3a042d42a5e993ccf0a22ba1e6775
BLAKE2b-256 57d29a4a97ffab54fda667c39f1a32f7cb0db0a7c88d39ccd77db04bdc9b561e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1c38848f9fa1901807504813fb97678a733291316976e466c75582a54e4ccb9d
MD5 be2e810efdde8a09bc8d0ab316fd0e9c
BLAKE2b-256 ae496e3e7043d2d0c34275472562d4e6a9e255565970b711391346d22a7e702d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b0f300b1476cb2d4c3b99c3af84d5c6f59248d70a4bc0cf0494180d8ed21700b
MD5 77a965de500390304f8c81d10f232697
BLAKE2b-256 2d0b8caa59ca6cfdc82252d30d1e5d9eb447349573d09e53c275a94fa5b2cfa6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a3-cp38-cp38-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 ad75d1d6a7e437a439afc4dff0da501e41e6ac0a4224784eaf87cf94920f3a9a
MD5 6beabaa1b6d6cf444be517d81c1fa85d
BLAKE2b-256 5cd59a4844b6b9062b57c6af61a1bfb6ba4eaca138a739115d72a11bd5dc1d6f

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