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.0a2-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.0a2-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.0a2-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.0a2-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.0a2-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.0a2-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.0a2-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.0a2-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.0a2-cp310-cp310-macosx_12_0_universal2.whl (3.0 MB view details)

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

paddle2onnx-2.0.0a2-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.0a2-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.0a2-cp39-cp39-macosx_12_0_universal2.whl (3.0 MB view details)

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

paddle2onnx-2.0.0a2-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.0a2-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.0a2-cp38-cp38-macosx_12_0_universal2.whl (3.0 MB view details)

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

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 003b792291a2168f3dc5fe25c79b0e0b0f31ffd9ff4b491f89e9b040e63e57ab
MD5 55a18a70f702f55c6888d15ae0486cab
BLAKE2b-256 66f181d5adbb4c824d75aa935d249acdf417652650da9426a1c77a530e3580a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 201d048724f4aa3678c26e0edc6b24ea69fde6eb6a7720e437bd857fa0b09594
MD5 9ac3e0a216a047efa6833848cd4bd6be
BLAKE2b-256 9fe697242ed3daea79177f10e397ca66a11b97f0d7d3e10589af40c64b701582

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp312-cp312-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 0f48eb15b88ed6cdf581832749a8a46c6df9d67bf7d8a978438a3f7ed38a4001
MD5 f66cc63b2ed0cf527eb867488cfd1986
BLAKE2b-256 ce7f58fe290f4efd9a411406f078f5229a0f5c646883b62f829165d5a14c4fef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e6e9c0f86a7c90abe46927ab02793a9d95a118bb6a9e65bf42408fa07c9c16d8
MD5 61403fb58e290a372aa4e0bddec5a35c
BLAKE2b-256 1d405a22f9919b6249db42d8cde399634df09abb83d9cd800c274ee009b7aaf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5ce843eff7e21718dfc9daf7e5fa382f4836a5caed2e937ddaf1d4eeca8e8b1a
MD5 ea51ec03d338dd44a63d7568e25d0b36
BLAKE2b-256 434bab5ec7f141d6286403ff5e31c696af06780516973bf4e670a3fcc73c02b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp311-cp311-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 be9edf1f62b1f78c40f7599a8206e186333db2ace9346bd5869e401c638441fe
MD5 2e8fdc8acb957ff6ff904d50178671ad
BLAKE2b-256 87c87c4c99221745e61ca146e979fe64fe49426e5a46b4d803a0ed2413fff65a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3b33aa2b12b8aad3c07abfeb1ecb61d3f1fc6b9c1445117cc286a459ac91affd
MD5 5c7194237f8d55e803b826352913e0f3
BLAKE2b-256 b0637bc2c15b0548a6c06989c94da58a08936c4194f4260a9cd8de6e0cd76f3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cde7cf787f86990339616bd13b524c45e8ee53d3dd8e8d87bbd5f726113a579a
MD5 0ac510f487b68ef0576ad4b55f549ff2
BLAKE2b-256 a00301b45d35a403e395d7ba1a57de43af5d4db025fabaf8c377ccd257b645d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp310-cp310-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 ed9ae5369f70487d1ad060f9bb9d96e36259f02c0e941129af51d9039883a3bc
MD5 28f0805478c03e496219fb83eb578b3d
BLAKE2b-256 c9f6c24efd6cdeba5b09ed2eb6b0fb269f55ec51cfc9641e3b97c99367ed8fff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f6a3e4ddec8b19b6858313cad38ff644d32b2166ea1b125b3a32f4794d46cdc4
MD5 6f0b3dd98154679083beaa450758b826
BLAKE2b-256 fe75e65cfb26c036da37a7ae3b2af7f4ebc1fac418eec44b7d70b4bd5fb0f13d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ea01a45e12633834e13ce98bfcc925413d8fc90a3784925d41d029afafbc64cd
MD5 6fcafb5e79fa2b6da9f62ac15ed55c6e
BLAKE2b-256 410f42af18ff461dcd8c27435cbb817b5428ab5d361660847d874f17c60e7fae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp39-cp39-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 82ff94b1d307b68ec272762b993fae08b9383a669c16f5e3a8bafc6152776b86
MD5 581f052732b23f89b5b97248528899c1
BLAKE2b-256 309f7980b52f4ef656aeb86a61438aecb4e7bb807d32793d40b562f26685b8c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1a0cf487d69a61439c655bedb8b258ef5953a6025d0d5452f2ab1097ce928679
MD5 19ab6dac9586f28f7ce6f765975240c0
BLAKE2b-256 73a245673bb3ac183a83db8321839860442646d572a8376459d6fb26f4fb4966

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 adba07043d6a1e0355d518af758926b0efc5278ed4f0b61dafc0a5a7b5dd1e31
MD5 84fb7b7602896ed3070566eb1460d2dd
BLAKE2b-256 8cd72a45dc01fc4723285bfdc9c359db841a2488fe9f7fdb49140e036495b8d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for paddle2onnx-2.0.0a2-cp38-cp38-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 020ae7a4fbf740d032edbc0161206c6862a3eb6dcd0059dd111e9991ec8fdb54
MD5 5753f8a66a85b867bbc67afa212cb8ff
BLAKE2b-256 b9dfe2a3f2a8a21bd368a5be4b46345fe47525b9ce020e380facbee8eb2b3ee0

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