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 model_dir \
            --model_filename inference.pdmodel \
            --params_filename inference.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 模型有优化的需求,推荐使用 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-1.2.11-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.11-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.11-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.11-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.11-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.11-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.11-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.11-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.11-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.11-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.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for paddle2onnx-1.2.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a91cf102bcb1bddc3b519f41cebfd9015cae986aa141cacbf6445dc3d23a74b7
MD5 c69a6a68962e81804b48f7de2b42a077
BLAKE2b-256 bfbd511c1d9e82cab31b0879d214eb438d045437406829665a0f0db13c87513b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-1.2.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f7114f038652ae5a7db7873789565c0b77180d6b8948a1d3be7bd6d86addb718
MD5 51aa6027fa66c9c645c01cc2aa561454
BLAKE2b-256 236063f25cecc7aefa05cfafb480ca969622cb3a63539e1ab6441d138baaf0c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-1.2.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d6597948febf45469c38886a7dfa38913be11c6e6b9d0eda22239dbd6d7ef99d
MD5 80c3bebca9efb14fe60dc60a566f841a
BLAKE2b-256 683ac1424f3e8cc738a2907680c74e5005b897d6eb2c00c6ed5704ed96fe0d39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-1.2.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 92af5ce28902a34fe168891653b2938c69cb19dcd12470ac968767f0c0fa65cb
MD5 2203afcb5d8e941174d21913a4524dc5
BLAKE2b-256 1d4dd49a983c08717f8aee324beb0edfcdc1591da26b19dd5548a5ab92f78057

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-1.2.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 689a13c650d4abfc24f5150fea391485626a7fd2b0caf850bac01fa400615f1e
MD5 3c06f0428c7ef6b71828f6fda409a3e2
BLAKE2b-256 368e2e5abd2c57df7d3a4ee3d6e326a787dc2b2c3fc295e55399a6491334368b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-1.2.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 56565529ee78687df372b1ef9f09e458ff3571ca0dd1fa598306931ff888531c
MD5 81d3fa53a228776eddd868d487ea09e0
BLAKE2b-256 1977b514856fa503d73c4cfc8fbc759122483cc154f48ca1f0c14545eac6c489

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-1.2.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3add5d0b71d517c29be3d58c7595df8c023dcd9d1d282de746b70b6f30d0852
MD5 e8e0eb9b10b7a4b46a1fb991f459ba3e
BLAKE2b-256 652afc93d835deb9e5aa06f7a459b1c0e132a5106d3345a5feda564ecb3fb9e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-1.2.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b17f62a843c6f1b2489c3b4a20945c032748a49136c994c5668368924c5f9ba3
MD5 a98ecd044c66c16c4a4ab39c1e671044
BLAKE2b-256 05f432c571f8f990a3b7d97ac9b53f8863fb74a104493619d61298530571770d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-1.2.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dcda23c225bbd91d1ad2580bb29298bff69532d4adc02e881f71346ab66d6593
MD5 c4236d56b781ed83fed3f16f6a565cf6
BLAKE2b-256 364b327f4313b2e02f3a530933e7f37fc123e4198442271943de91e1580d9e3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-1.2.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 50b166e138aa7dd62825927fc49fc5c59cd3bbe2cd2ddebf5dd30decbea56974
MD5 31b2511fd5a47e770e68ebe8717bceec
BLAKE2b-256 b49f91f69a952d5dd884ecb0be95dfc0b6e470808df14cdb90c84c727fb45ae9

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