# Paddle2ONNX
简体中文 | [English](README_en.md)
## 🆕 新开源项目FastDeploy
如若你转换的目的是用于部署TensorRT、OpenVINO、ONNX Runtime,当前飞桨提供[FastDeploy](https://github.com/PaddlePaddle/FastDeploy),支持150+模型直接部署到这些引擎上,Paddle2ONNX的转换流程也已经无需用户显式调用,帮助大家解决在转换过程中的各种Trick及对齐问题。
- 欢迎Star🌟 [https://github.com/PaddlePaddle/FastDeploy](https://github.com/PaddlePaddle/FastDeploy)
- [使用ONNX Runtime部署Paddle模型 C++ & Python](https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/runtime)
- [使用OpenVINO部署Paddle模型 C++ & Python](https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/runtime)
- [使用TensorRT部署Paddle模型 C++ & Python](https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/runtime)
- [PaddleOCR模型部署 C++ & Python](https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/vision/ocr)
- [PaddleDetection模型部署 C++ & Python](https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/vision/detection/paddledetection)
## 简介
Paddle2ONNX 支持将 **PaddlePaddle** 模型格式转化到 **ONNX** 模型格式。通过 ONNX 可以完成将 Paddle 模型到多种推理引擎的部署,包括 TensorRT/OpenVINO/MNN/TNN/NCNN,以及其它对 ONNX 开源格式进行支持的推理引擎或硬件。
感谢[EasyEdge团队](https://ai.baidu.com/easyedge/home)贡献的Paddle2Caffe, 支持将Paddle模型导出为Caffe格式,安装及使用方式参考[Paddle2Caffe](Paddle2Caffe)。
## 模型库
Paddle2ONNX 建设了一个飞桨热点模型的模型库,包括 PicoDet、OCR、HumanSeg 等多种领域模型,有需求的开发者可直接下载使用,进入目录[model_zoo](./model_zoo)了解更多详情!
## 环境依赖
- 无
## 安装
```
pip install paddle2onnx
```
- [Github 源码安装方式](docs/zh/compile.md)
## 使用
### 获取PaddlePaddle部署模型
Paddle2ONNX 在导出模型时,需要传入部署模型格式,包括两个文件
- `model_name.pdmodel`: 表示模型结构
- `model_name.pdiparams`: 表示模型参数
[注意] 这里需要注意,两个文件其中参数文件后辍为 `.pdiparams`,如你的参数文件后辍是 `.pdparams`,那说明你的参数是训练过程中保存的,当前还不是部署模型格式。 部署模型的导出可以参照各个模型套件的导出模型文档。
### 命令行转换
```
paddle2onnx --model_dir saved_inference_model \
--model_filename model.pdmodel \
--params_filename model.pdiparams \
--save_file model.onnx \
--enable_dev_version True
```
#### 参数选项
| 参数 |参数说明 |
|----------|--------------|
|--model_dir | 配置包含 Paddle 模型的目录路径|
|--model_filename |**[可选]** 配置位于 `--model_dir` 下存储网络结构的文件名|
|--params_filename |**[可选]** 配置位于 `--model_dir` 下存储模型参数的文件名称|
|--save_file | 指定转换后的模型保存目录路径 |
|--opset_version | **[可选]** 配置转换为 ONNX 的 OpSet 版本,目前支持 7~16 等多个版本,默认为 9 |
|--enable_dev_version | **[可选]** 是否使用新版本 Paddle2ONNX(推荐使用),默认为 True |
|--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"},默认为 {} |
- 使用 onnxruntime 验证转换模型, 请注意安装最新版本(最低要求 1.10.0)
### 其他优化工具
1. 如你对导出的 ONNX 模型有优化的需求,推荐使用 `onnx-simplifier`,也可使用如下命令对模型进行优化
```
python -m paddle2onnx.optimize --input_model model.onnx --output_model new_model.onnx
```
2. 如需要修改导出 ONNX 的模型输入形状,如改为静态 shape
```
python -m paddle2onnx.optimize --input_model model.onnx \
--output_model new_model.onnx \
--input_shape_dict "{'x':[1,3,224,224]}"
```
3. 如果你有裁剪 Paddle 模型,固化或修改 Paddle 模型输入 Shape 或者合并 Paddle 模型的权重文件等需求,请使用如下工具:[Paddle 相关工具](./tools/paddle/README.md)
4. 如果你需要裁剪 ONNX 模型或者修改 ONNX 模型,请参考如下工具:[ONNX 相关工具](./tools/onnx/README.md)
5. PaddleSlim 量化模型导出请参考:[量化模型导出ONNX](./docs/zh/quantize.md)
### 使用VisualDL进行模型转换
飞桨可视化工具VisualDL已经将模型转换工具部署在官网提供服务,可以点击[服务链接](https://www.paddlepaddle.org.cn/paddle/visualdl/modelconverter/)进行在线的Paddle2ONNX模型转换。
![Paddle2ONNX](https://user-images.githubusercontent.com/22424850/226798785-33167569-4bd0-4b00-a5c0-5d6642cd6751.gif)
## License
Provided under the [Apache-2.0 license](https://github.com/PaddlePaddle/paddle-onnx/blob/develop/LICENSE).
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
【paddle转onnx】工程包Paddle2ONNX (705个子文件)
fuse_squeeze_act_unsqueeze.h.bak 3KB
quantize_helper.cc 44KB
convert_fp32_to_fp16.cc 32KB
parser.cc 28KB
exporter.cc 23KB
onnx_helper.cc 19KB
activation.cc 17KB
multiclass_nms.cc 15KB
yolo_box.cc 12KB
converter.cc 12KB
pool2d.cc 11KB
pool3d.cc 9KB
paddle2onnx_optimizer.cc 9KB
elementwise.cc 7KB
loop.cc 7KB
rnn.cc 7KB
dequantize_linear.cc 6KB
slice.cc 6KB
fill_constant.cc 6KB
layer_norm.cc 6KB
set_value.cc 6KB
softmax_with_cross_entropy.cc 5KB
cpp2py_export.cc 5KB
reduce.cc 5KB
interpolate.cc 5KB
split.cc 5KB
onnx_reader.cc 4KB
lookup_table.cc 4KB
pad3d.cc 4KB
flip.cc 3KB
fill_constant_batch_size_like.cc 3KB
range.cc 3KB
quantize_linear.cc 3KB
clip.cc 3KB
gaussian_random.cc 3KB
flatten.cc 3KB
scatter.cc 3KB
scale.cc 3KB
partial_ops.cc 3KB
unsqueeze2.cc 3KB
dist.cc 3KB
conv3d.cc 3KB
gather.cc 3KB
conv2d.cc 3KB
group_norm.cc 3KB
atan2.cc 3KB
squeeze2.cc 3KB
temporal_shift.cc 3KB
eye.cc 3KB
paddle_reader.cc 3KB
linspace.cc 3KB
expand_v2.cc 2KB
conv2d_transpose.cc 2KB
argmax.cc 2KB
argsort.cc 2KB
tile.cc 2KB
argmin.cc 2KB
concat.cc 2KB
matmul.cc 2KB
dropout.cc 2KB
cumsum.cc 2KB
pad.cc 2KB
assign.cc 2KB
top_k_v2.cc 2KB
unique.cc 2KB
one_hot_v2.cc 2KB
mul.cc 2KB
p_norm.cc 2KB
fill_like.cc 2KB
instance_norm.cc 2KB
top_k.cc 2KB
greater_equal.cc 2KB
matmul_v2.cc 2KB
roi_align.cc 2KB
less_equal.cc 2KB
scatter_nd_add.cc 2KB
assign_value.cc 2KB
reshape2.cc 2KB
meshgrid.cc 2KB
data_norm.cc 2KB
expand_as.cc 2KB
grid_sampler.cc 2KB
index_sample.cc 2KB
equal.cc 2KB
dot.cc 2KB
not_equal.cc 1KB
affine_channel.cc 1KB
batch_norm.cc 1KB
pow.cc 1KB
expand.cc 1KB
greater_than.cc 1KB
less_than.cc 1KB
add_n.cc 1KB
flatten2.cc 1KB
stack.cc 1KB
gather_nd.cc 1KB
logical_op.cc 1KB
take_along_axis.cc 1KB
transpose2.cc 1KB
unstack.cc 1KB
共 705 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
码韵
- 粉丝: 2w+
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功