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 感谢捐赠
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.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80a5027866e24953cabdf717859e3a691734a6bb6051a4b05c613b81b0380abe |
|
MD5 | b71a4f7673e53d8f3fd5edca7cfc4fa1 |
|
BLAKE2b-256 | 17a0455bbcd8e302ad0ecd0cf23e4c41c4f6289693b2e87948aba5fda9b38a5f |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |