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 本身不依赖其他组件,但是我们建议您在以下环境下使用 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

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 感谢捐赠

  • 感谢 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-1.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

paddle2onnx-1.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

paddle2onnx-1.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

paddle2onnx-1.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

paddle2onnx-1.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

paddle2onnx-1.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

paddle2onnx-1.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

paddle2onnx-1.2.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

paddle2onnx-1.2.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

paddle2onnx-1.2.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

Details for the file paddle2onnx-1.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 80a5027866e24953cabdf717859e3a691734a6bb6051a4b05c613b81b0380abe
MD5 b71a4f7673e53d8f3fd5edca7cfc4fa1
BLAKE2b-256 17a0455bbcd8e302ad0ecd0cf23e4c41c4f6289693b2e87948aba5fda9b38a5f

See more details on using hashes here.

File details

Details for the file paddle2onnx-1.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a66b7a4fb3fcca1bac245bc1592f81b11d91b1298dc3b315de4cf48475398c3d
MD5 df84b198403c98696ac6a235bc86d7df
BLAKE2b-256 8a0b8e6f4efb98b63366f8f366a0c16e515a7d2ac51d6d0213d9d24bc616d76d

See more details on using hashes here.

File details

Details for the file paddle2onnx-1.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e06eb7e4aa94a9efc9d58c7311553aefff623c3bcda312f1114dde953e6202ce
MD5 4021af33d59cae52b5caf86435d43878
BLAKE2b-256 30c2f93eb6b18f5c6a0add3222cdeea39aed36f681506fc330b19bf30cf4dc44

See more details on using hashes here.

File details

Details for the file paddle2onnx-1.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f2afe4e682c5cc0dd520327bf2bbcba29437c2e1fb43a91bcd833f560165e3c6
MD5 18a0ea7de3930c160b0a0bd17fdc464b
BLAKE2b-256 b9a4f79f9d4c3a975a881ca25cd35efd97415de7d133d0d5c75e8344d4935487

See more details on using hashes here.

File details

Details for the file paddle2onnx-1.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 afe28ce78af6cbae6ffde96d9543e7a82b7adaca735f232a49a47acdb8e554b6
MD5 d6a178b3e7fd34932b2c85bb5ca165af
BLAKE2b-256 91cb6d745c74fbcb205bd28fd46b1523ef281b0227fd59c3dc1f0c24a58dad17

See more details on using hashes here.

File details

Details for the file paddle2onnx-1.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e6246f22d12f0c11e5add758e4b07876671e7bef2e9ad47d865e8c0affab216d
MD5 8dd704c4ba8794b588c21544e91a65ae
BLAKE2b-256 73c34345625b12ab359206101e4c6ac909e3619490806089cc9eb1f15a3d9748

See more details on using hashes here.

File details

Details for the file paddle2onnx-1.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4192b7ed0e9f292506aa07120240e2eb65817f137cdbb5f45f062d007e24f284
MD5 90c66ee04a4682cec10418b8f4810656
BLAKE2b-256 cea27ee9cee3abdde58f53b955e601d50bc91e3dbe66072a302d46c28a275a72

See more details on using hashes here.

File details

Details for the file paddle2onnx-1.2.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4f0b9e74c37ee5b2669b5f86cfe7c4e0a6d85e775e942eba2291ccc6dbf4f181
MD5 453967f031493c4dbf4e5ced8cab872e
BLAKE2b-256 08b191f4c52695e71c492eb476f77fb80a420e338d5ca8c66347bea95bc9c990

See more details on using hashes here.

File details

Details for the file paddle2onnx-1.2.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 650d623720252bf5f38e359ce5df2b8972792e6f1a77dd12570e5de6b5dfd67a
MD5 3859a03bdb629cc2a946a7f8107e9f56
BLAKE2b-256 8eaa261730eadf6685d6d2b14aba714922a5f029c6c95c83c689a29d3b7041c4

See more details on using hashes here.

File details

Details for the file paddle2onnx-1.2.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b87826f3af53570c158d41168519dc90d752fc6ae13ba1175b1e7bc818251285
MD5 90b7b8d61ad7f443a3dce96280a96bb6
BLAKE2b-256 5fdfc30b7a5d629603a5f66ec09f600e44eca48984f240c5d5d3294a24ca727b

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