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 感谢捐赠
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |