From 7941def4699062f5f149a10e917fb0726dcf1a18 Mon Sep 17 00:00:00 2001 From: Zheng-Bicheng <58363586+Zheng-Bicheng@users.noreply.github.com> Date: Thu, 28 Mar 2024 12:35:19 +0800 Subject: [PATCH] update README.md (#1215) --- README.md | 74 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 42 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 1e6aea0e9..463610489 100755 --- a/README.md +++ b/README.md @@ -2,39 +2,47 @@ 简体中文 | [English](README_en.md) -## 简介 +# 1 简介 -Paddle2ONNX 支持将 **PaddlePaddle** 模型格式转化到 **ONNX** 模型格式。通过 ONNX 可以完成将 Paddle 模型到多种推理引擎的部署,包括 TensorRT/OpenVINO/MNN/TNN/NCNN,以及其它对 ONNX 开源格式进行支持的推理引擎或硬件。 +Paddle2ONNX 支持将 **PaddlePaddle** 模型格式转化到 **ONNX** 模型格式。通过 ONNX 可以完成将 Paddle 模型到多种推理引擎的部署,包括 +TensorRT/OpenVINO/MNN/TNN/NCNN,以及其它对 ONNX 开源格式进行支持的推理引擎或硬件。 -感谢[EasyEdge团队](https://ai.baidu.com/easyedge/home)贡献的Paddle2Caffe, 支持将Paddle模型导出为Caffe格式,安装及使用方式参考[Paddle2Caffe](Paddle2Caffe)。 +感谢[EasyEdge团队](https://ai.baidu.com/easyedge/home)贡献的Paddle2Caffe, +支持将Paddle模型导出为Caffe格式,安装及使用方式参考[Paddle2Caffe](Paddle2Caffe)。 +# 2 环境依赖 -## 模型库 -Paddle2ONNX 建设了一个飞桨热点模型的模型库,包括 PicoDet、OCR、HumanSeg 等多种领域模型,有需求的开发者可直接下载使用,进入目录[model_zoo](./model_zoo)了解更多详情! +- PaddlePaddle 2.6.0 +- onnxruntime >= 1.10.0 -## 环境依赖 +# 3 安装 -- 无 - -## 安装 +针对PaddlePaddle2.5.2的用户可以直接运行以下命令行代码来安装P2O ``` pip install paddle2onnx ``` -- [Github 源码安装方式](docs/zh/compile.md) +由于没有自动发包机制,针对PaddlePaddle2.6.0的用户,请按照[Github 源码安装方式](docs/zh/compile.md)编译Paddle2ONNX。 + +# 4 使用 -## 使用 +## 4.1 获取PaddlePaddle部署模型 -### 获取PaddlePaddle部署模型 +Paddle2ONNX 在导出模型时,需要传入部署模型格式,包括两个文件 -Paddle2ONNX 在导出模型时,需要传入部署模型格式,包括两个文件 -- `model_name.pdmodel`: 表示模型结构 +- `model_name.pdmodel`: 表示模型结构 - `model_name.pdiparams`: 表示模型参数 -[注意] 这里需要注意,两个文件其中参数文件后辍为 `.pdiparams`,如你的参数文件后辍是 `.pdparams`,那说明你的参数是训练过程中保存的,当前还不是部署模型格式。 部署模型的导出可以参照各个模型套件的导出模型文档。 + [注意] 这里需要注意,两个文件其中参数文件后辍为 `.pdiparams`,如你的参数文件后辍是 `.pdparams` + ,那说明你的参数是训练过程中保存的,当前还不是部署模型格式。 部署模型的导出可以参照各个模型套件的导出模型文档。 + +## 4.2 调整Paddle模型 + +如果对Paddle模型的输入输出需要做调整,可以前往[Paddle 相关工具](./tools/paddle/README.md)查看教程。 +## 4.3 命令行转换 -### 命令行转换 +使用如下命令将Paddle模型转换为ONNX模型 ``` paddle2onnx --model_dir saved_inference_model \ @@ -43,7 +51,9 @@ paddle2onnx --model_dir saved_inference_model \ --save_file model.onnx \ --enable_dev_version True ``` -#### 参数选项 + +可调整的转换参数如下表: + | 参数 | 参数说明 | |----------------------------|-----------------------------------------------------------------------------------------------------------------| | --model_dir | 配置包含 Paddle 模型的目录路径 | @@ -60,27 +70,27 @@ paddle2onnx --model_dir saved_inference_model \ | --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) +## 4.4 裁剪ONNX -### 其他优化工具 -1. 如你对导出的 ONNX 模型有优化的需求,推荐使用 `onnx-simplifier`,也可使用如下命令对模型进行优化 -``` -python -m paddle2onnx.optimize --input_model model.onnx --output_model new_model.onnx -``` +如果你需要调整 ONNX 模型,请参考如下工具:[ONNX 相关工具](./tools/onnx/README.md) + +## 4.5 优化ONNX + +如你对导出的 ONNX 模型有优化的需求,推荐使用 `onnx-simplifier`,也可使用如下命令对模型进行优化 -2. 如需要修改导出 ONNX 的模型输入形状,如改为静态 shape ``` -python -m paddle2onnx.optimize --input_model model.onnx \ - --output_model new_model.onnx \ - --input_shape_dict "{'x':[1,3,224,224]}" +python -m paddle2onnx.optimize --input_model model.onnx --output_model new_model.onnx ``` -3. 如果你有裁剪 Paddle 模型,固化或修改 Paddle 模型输入 Shape 或者合并 Paddle 模型的权重文件等需求,请使用如下工具:[Paddle 相关工具](./tools/paddle/README.md) +# 5 License -4. 如果你需要裁剪 ONNX 模型或者修改 ONNX 模型,请参考如下工具:[ONNX 相关工具](./tools/onnx/README.md) +Provided under the [Apache-2.0 license](https://github.com/PaddlePaddle/paddle-onnx/blob/develop/LICENSE). -5. PaddleSlim 量化模型导出请参考:[量化模型导出ONNX](./docs/zh/quantize.md) +# 6 捐赠 -## License -Provided under the [Apache-2.0 license](https://github.com/PaddlePaddle/paddle-onnx/blob/develop/LICENSE). +* 感谢PaddlePaddle团队提供服务器支持Paddle2ONNX的CI建设 +* 感谢社区用户 [chenwhql](https://github.com/chenwhql)、[luotao1](https://github.com/luotao1)、 + [goocody](https://github.com/goocody)、[jeff41404](https://github.com/jeff41404)、 + [jzhang553](https://github.com/jzhang533)、[ZhengBicheng](https://github.com/ZhengBicheng) + 与2024年03月28日向Paddle2ONNX PMC捐赠共10000元人名币用于Paddle2ONNX的发展。 \ No newline at end of file