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 |
--custom_ops | [可选] 将 Paddle OP 导出为 ONNX 的 Custom OP,例如:--custom_ops '{"paddle_op":"onnx_op"},默认为 {} |
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 感谢捐赠
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.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b77c314e8fb4debd804ad2a7d94a29fe8a5ef6a9d8b676f818f3729a913485b2 |
|
MD5 | 69b4f7fe616dcaa7b9f3b803a3e92ab9 |
|
BLAKE2b-256 | ef5943378e02f1bc6300260a19a527fec673845123830ac0e1d1a2cb3b2f6035 |
Hashes for paddle2onnx-1.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bee27b58ca057c11f69e6606d4dec078ea5c14eb7fb3fc049e3e3482dbb4c18e |
|
MD5 | 086b6d99627c66f0dd5eb757fe0fe003 |
|
BLAKE2b-256 | da40dc84c1244e7159c2b99233bbf21cf2260accdcabc5a9f5047e590489b13b |
Hashes for paddle2onnx-1.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dbbf15c83fb3ef840717ee95d2933f4f08640a9988d7110889421a642b71f20 |
|
MD5 | 931ec85123341418374a0ea06435c9b9 |
|
BLAKE2b-256 | 3354fc539fe66f73d4c572a36f907e946eb103882c01ab1bda09ede8e1a6a51d |
Hashes for paddle2onnx-1.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 553fd08ebeadf53b94a47c1ce370bf70e9ce9651ae2546b9dc7cb774ae120c1e |
|
MD5 | 9c853d3ecf81b20dbcfec7320ca1a8c9 |
|
BLAKE2b-256 | e6423b309476cbcc535582ada39cb3da713d769bbade22596273638166a1f3a6 |
Hashes for paddle2onnx-1.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a08d20a10eef9b24c0455d2a8ac69683481db5b7b7ab707e15692e6b99caace |
|
MD5 | bb8ba80b4bc8b2e789d5ca432ce73fab |
|
BLAKE2b-256 | 38c92ec0b0cbe32a4bfeeb39a82700279670188764ee92cdc0652d733d3552cf |
Hashes for paddle2onnx-1.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ff0176ba5dd6eb31b428da85bb3b32536bb1818889cb5a433cd0e3e6f9aa08d |
|
MD5 | af832f1f8cc4c9bd89d57c90aa7e36fd |
|
BLAKE2b-256 | c5d1906ae09d1f23868964fa30b8918f22c20185b57a5741d1500daf54214d30 |
Hashes for paddle2onnx-1.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a06d7ad832cceed2fd6792e152955f6b7a982a33b77a40da36635a3734e81c2c |
|
MD5 | 8e41884ca5bfdac80eedb2e2227dbf73 |
|
BLAKE2b-256 | 9c740dbacb6f94338e0db37cbbf162d4271c8bdec1f114d0c5927c090e1570bc |
Hashes for paddle2onnx-1.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4173fe7cec18cad1c3ce2ae04d74d65599ef48d4896a369c66f79934da391ac6 |
|
MD5 | eb547a0990f99f47f6fc9d66e1e1c4c3 |
|
BLAKE2b-256 | 95a205ed14ecc1e20b2e9372f4ca07bcee0c3a6f9adb725ee38405ba4f2eb367 |
Hashes for paddle2onnx-1.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 377175f15ca3cc247d16b8e9b3e3e1bf49f1084773b3a2944e721b2c51f359ac |
|
MD5 | b499ca0bd112480b37776f193ea4d563 |
|
BLAKE2b-256 | 40f941743575e1e0563b597b30a5edea205f90d73aba716f00d76c78c07f24d9 |
Hashes for paddle2onnx-1.2.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a5ed34700b027cb63f3ddfc9693fd60bfe2e177f822764765fee051523c808c |
|
MD5 | 35e7a3f7aea5d3c2fbb46a1b45799322 |
|
BLAKE2b-256 | 4a42b9a2376e32df737ea03acb16523ed86a0c313caf95c173e206d60e827d4e |