瀏覽代碼

change deploy docs

FlyingQianMM 5 年之前
父節點
當前提交
1005a94b96

+ 23 - 0
docs/tutorials/deploy/deploy_lite.md

@@ -0,0 +1,23 @@
+# 移动端部署
+
+step 1: 安装PaddleLite
+
+```
+pip install paddlelite
+```
+
+step 2: 将PaddleX模型导出为inference模型
+
+参考[导出inference模型](deploy_server/deploy_python.html#inference)将模型导出为inference格式模型。
+
+step 3: 将inference模型转换成PaddleLite模型
+
+```
+python /path/to/PaddleX/deploy/lite/export_lite.py --model_path /path/to/inference_model --save_dir /path/to/onnx_model
+```
+
+`--model_path`用于指定inference模型的路径,`--save_dir`用于指定Lite模型的保存路径。
+
+step 4: 预测
+
+Lite模型预测正在集成中,即将开源...

+ 42 - 10
docs/tutorials/deploy/depoly_openvino.md → docs/tutorials/deploy/deploy_openvino.md

@@ -1,16 +1,43 @@
-# OpenVINO 分类demo编译
-
-## 说明
+# OpenVINO部署
+
+## 方案简介
+OpenVINO部署方案位于目录`deploy/openvino/`下,且独立于PaddleX其他模块,该方案目前支持在 **Linux** 完成编译和部署运行。
+
+PaddleX到OpenVINO的部署流程如下:
+
+>> PaddleX --> ONNX --> OpenVINO IR --> OpenVINO Inference Engine
+
+|目前支持OpenVINO部署的PaddleX模型|
+|-----|
+|ResNet18|
+|ResNet34|
+|ResNet50|
+|ResNet101|
+|ResNet50_vd|
+|ResNet101_vd|
+|ResNet50_vd_ssld|
+|ResNet101_vd_ssld
+|DarkNet53|
+|MobileNetV1|
+|MobileNetV2|
+|DenseNet121|
+|DenseNet161|
+|DenseNet201|
+
+## 部署流程
+### 说明
 本文档在 `Ubuntu`使用`GCC 4.8.5` 进行了验证,如果需要使用更多G++版本和平台的OpenVino编译,请参考: [OpenVINO](https://github.com/openvinotoolkit/openvino/blob/2020/build-instruction.md)。
 
-## 验证环境
+### 验证环境
 * Ubuntu* 16.04 (64-bit) with GCC* 4.8.5
 * CMake 3.12
 * Python 2.7 or higher
 
 请确保系统已经安装好上述基本软件,**下面所有示例以工作目录 `/root/projects/`演示**。
 
- `git clone https://github.com/PaddlePaddle/PaddleX.git`
+```
+ git clone https://github.com/PaddlePaddle/PaddleX.git
+```
 
 **说明**:其中`C++`预测代码在`/root/projects/PaddleX/deploy/openvino` 目录,该目录不依赖任何`PaddleX`下其他目录。
 
@@ -51,7 +78,7 @@ cmake .. \
     -DOPENCV_DIR=${OPENCV_DIR} \
     -DGFLAGS_DIR=${GFLAGS_DIR} \
     -DOPENVINO_DIR=${OPENVINO_DIR} \
-    -DNGRAPH_LIB=${NGRAPH_LIB} 
+    -DNGRAPH_LIB=${NGRAPH_LIB}
 make
 ```
 
@@ -62,10 +89,16 @@ make
 
 ### Step3: 模型转换
 
-将[]()生成的onnx文件转换为OpencVINO支持的格式,请参考:[Model Optimizer文档](https://docs.openvinotoolkit.org/latest/_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html)
+将PaddleX模型转换成ONNX模型
+
+```
+paddlex --export_onnx --model_dir=/path/to/xiaoduxiong_epoch_12 --save_dir=/path/to/onnx_model
+```
+
+将生成的onnx模型转换为OpencVINO支持的格式,请参考:[Model Optimizer文档](https://docs.openvinotoolkit.org/latest/_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html)
 
 ### Step4: 预测
-编译成功后,预测demo的可执行程序分别为`build/classifer`,其主要命令参数说明如下:
+编译成功后,预测demo的可执行程序分别为`build/detector`,其主要命令参数说明如下:
 
 |  参数   | 说明  |
 |  ----  | ----  |
@@ -75,7 +108,7 @@ make
 | --device  | 运行的平台, 默认值为"CPU" |
 
 
-## 样例
+### 样例
 
 可使用[小度熊识别模型](deploy.md#导出inference模型)中导出的`inference_model`和测试图片进行预测。
 
@@ -100,4 +133,3 @@ make
 ```shell
 ./build/classifier --model_dir=/path/to/models/inference_model --image_list=/root/projects/images_list.txt -
 ```
-

+ 5 - 2
docs/tutorials/deploy/deploy_cpp_linux.md → docs/tutorials/deploy/deploy_server/deploy_cpp/deploy_cpp_linux.md

@@ -1,4 +1,4 @@
-# Linux平台编译指南
+# Linux平台部署
 
 ## 说明
 本文档在 `Linux`平台使用`GCC 4.8.5` 和 `GCC 4.9.4`测试过,如果需要使用更高G++版本编译使用,则需要重新编译Paddle预测库,请参考: [从源码编译Paddle预测库](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/advanced_guide/inference_deployment/inference/build_and_install_lib_cn.html#id12)。
@@ -103,6 +103,9 @@ make
  ```
 
 ### Step5: 预测及可视化
+
+参考[导出inference模型](../deploy_python.html#inference)将模型导出为inference格式模型。
+
 编译成功后,预测demo的可执行程序分别为`build/demo/detector`,`build/demo/classifer`,`build/demo/segmenter`,用户可根据自己的模型类型选择,其主要命令参数说明如下:
 
 |  参数   | 说明  |
@@ -117,7 +120,7 @@ make
 
 ## 样例
 
-可使用[小度熊识别模型](deploy.md#导出inference模型)中导出的`inference_model`和测试图片进行预测。
+可使用[小度熊识别模型](../deploy_python.html#inference)中导出的`inference_model`和测试图片进行预测。
 
 `样例一`:
 

+ 10 - 8
docs/tutorials/deploy/deploy_cpp_win_vs2019.md → docs/tutorials/deploy/deploy_server/deploy_cpp/deploy_cpp_win_vs2019.md

@@ -1,4 +1,4 @@
-# Visual Studio 2019 Community CMake 编译指南
+# Windows平台部署
 
 ## 说明
 Windows 平台下,我们使用`Visual Studio 2019 Community` 进行了测试。微软从`Visual Studio 2017`开始即支持直接管理`CMake`跨平台编译项目,但是直到`2019`才提供了稳定和完全的支持,所以如果你想使用CMake管理项目编译构建,我们推荐你使用`Visual Studio 2019`环境下构建。
@@ -62,19 +62,19 @@ PaddlePaddle C++ 预测库针对不同的`CPU`,`CUDA`,以及是否支持Tens
 
 1. 打开Visual Studio 2019 Community,点击`继续但无需代码`
 
-![step2](images/vs2019_step1.png)
+![step2](../../images/vs2019_step1.png)
 
 2. 点击: `文件`->`打开`->`CMake`
 
-![step2.1](images/vs2019_step2.png)
+![step2.1](../../images/vs2019_step2.png)
 
 选择项目代码所在路径,并打开`CMakeList.txt`:
 
-![step2.2](images/vs2019_step3.png)
+![step2.2](../../images/vs2019_step3.png)
 
 3. 点击:`项目`->`PADDLEX_INFERENCE的CMake设置`
 
-![step3](images/vs2019_step4.png)
+![step3](../../images/vs2019_step4.png)
 
 4. 点击`浏览`,分别设置编译选项指定`CUDA`、`OpenCV`、`Paddle预测库`的路径
 
@@ -88,17 +88,19 @@ PaddlePaddle C++ 预测库针对不同的`CPU`,`CUDA`,以及是否支持Tens
 
 **注意:** 1. 使用`CPU`版预测库,请把`WITH_GPU`的`值`去掉勾 2. 如果使用的是`openblas`版本,请把`WITH_MKL`的`值`去掉勾
 
-![step4](images/vs2019_step5.png)
+![step4](../../images/vs2019_step5.png)
 
 **设置完成后**, 点击上图中`保存并生成CMake缓存以加载变量`。
 
 5. 点击`生成`->`全部生成`
 
-![step6](images/vs2019_step6.png)
+![step6](../../images/vs2019_step6.png)
 
 
 ### Step5: 预测及可视化
 
+参考[导出inference模型](../deploy_python.html#inference)将模型导出为inference格式模型。
+
 上述`Visual Studio 2019`编译产出的可执行文件在`out\build\x64-Release`目录下,打开`cmd`,并切换到该目录:
 
 ```
@@ -120,7 +122,7 @@ cd D:\projects\PaddleX\deploy\cpp\out\build\x64-Release
 
 ## 样例
 
-可使用[小度熊识别模型](deploy.md#导出inference模型)中导出的`inference_model`和测试图片进行预测。
+可使用[小度熊识别模型](../deploy_python.html#inference)中导出的`inference_model`和测试图片进行预测。
 
 `样例一`:
 

+ 4 - 4
docs/tutorials/deploy/encryption.md → docs/tutorials/deploy/deploy_server/deploy_cpp/encryption.md

@@ -1,4 +1,4 @@
-# Paddle模型加密方案
+# 模型加密
 
 飞桨团队推出模型加密方案,使用业内主流的AES加密技术对最终模型进行加密。飞桨用户可以通过PaddleX导出模型后,使用该方案对模型进行加密,预测时使用解密SDK进行模型解密并完成推理,大大提升AI应用安全性和开发效率。
 
@@ -29,8 +29,8 @@ paddlex-encryption
 ./paddlex-encryption/tool/paddlex_encrypt_tool -model_dir /path/to/paddlex_inference_model -save_dir /path/to/paddlex_encrypted_model
 ```
 
-`-model_dir`用于指定inference模型路径,可使用[导出小度熊识别模型](deploy.md#导出inference模型)中导出的`inference_model`。加密完成后,加密过的模型会保存至指定的`-save_dir`下,包含`__model__.encrypted`、`__params__.encrypted`和`model.yml`三个文件,同时生成密钥信息,命令输出如下图所示,密钥为`kLAl1qOs5uRbFt0/RrIDTZW2+tOf5bzvUIaHGF8lJ1c=`
-![](images/encryt.png)
+`-model_dir`用于指定inference模型路径,可使用[导出小度熊识别模型](../deploy_python.html#inference)中导出的`inference_model`。加密完成后,加密过的模型会保存至指定的`-save_dir`下,包含`__model__.encrypted`、`__params__.encrypted`和`model.yml`三个文件,同时生成密钥信息,命令输出如下图所示,密钥为`kLAl1qOs5uRbFt0/RrIDTZW2+tOf5bzvUIaHGF8lJ1c=`
+![](../../../../images/encryt.png)
 
 ## 2. PaddleX C++加密部署
 
@@ -50,7 +50,7 @@ paddlex-encryption
 
 ## 样例
 
-可使用[导出小度熊识别模型](deploy.md#导出inference模型)中的测试图片进行预测。
+可使用[导出小度熊识别模型](../deploy_python.html#inference)中的测试图片进行预测。
 
 `样例一`:
 

+ 12 - 0
docs/tutorials/deploy/deploy_server/deploy_cpp/index.rst

@@ -0,0 +1,12 @@
+C++部署
+==============
+
+
+C++部署方案位于目录PaddleX/deploy/cpp/下,且独立于PaddleX其他模块。该方案支持在 Windows 和 Linux 完成编译、二次开发集成和部署运行,支持在Linux上完成加密部署。
+
+.. toctree::
+   :maxdepth: 1
+
+   deploy_cpp_win_vs2019.md
+   deploy_cpp_linux.md
+   encryption.md

+ 10 - 56
docs/tutorials/deploy/deploy.md → docs/tutorials/deploy/deploy_server/deploy_python.md

@@ -1,10 +1,7 @@
-# 模型预测部署
+# Python部署
+PaddleX已经集成了基于Python的高性能预测接口,在安装PaddleX后,可参照如下代码示例,进行预测。相关的接口文档可参考[paddlex.deploy](../../../apis/deploy.md)
 
-本文档指引用户如何采用更高性能地方式来部署使用PaddleX训练的模型。使用本文档模型部署方式,会在模型运算过程中,对模型计算图进行优化,同时减少内存操作,相对比普通的paddlepaddle模型加载和预测方式,预测速度平均可提升1倍,具体各模型性能对比见[预测性能对比](#预测性能对比)
-
-## 服务端部署
-
-### 导出inference模型
+## 导出inference模型
 
 在服务端部署的模型需要首先将模型导出为inference格式模型,导出的模型将包括`__model__`、`__params__`和`model.yml`三个文名,分别为模型的网络结构,模型权重和模型的配置文件(包括数据预处理参数等等)。在安装完PaddleX后,在命令行终端使用如下命令导出模型到当前目录`inferece_model`下。
 > 可直接下载小度熊分拣模型测试本文档的流程[xiaoduxiong_epoch_12.tar.gz](https://bj.bcebos.com/paddlex/models/xiaoduxiong_epoch_12.tar.gz)
@@ -22,59 +19,17 @@ paddlex --export_inference --model_dir=./xiaoduxiong_epoch_12 --save_dir=./infer
 paddlex --export_inference --model_dir=./xiaoduxiong_epoch_12 --save_dir=./inference_model --fixed_input_shape=[640,960]
 ```
 
-### Python部署
-PaddleX已经集成了基于Python的高性能预测接口,在安装PaddleX后,可参照如下代码示例,进行预测。相关的接口文档可参考[paddlex.deploy](apis/deploy.md)
+## 预测部署
 > 点击下载测试图片 [xiaoduxiong_test_image.tar.gz](https://bj.bcebos.com/paddlex/datasets/xiaoduxiong_test_image.tar.gz)
 
 ```
 import paddlex as pdx
-predictor = pdx.deploy.create_predictor('./inference_model')
+predictor = pdx.deploy.Predictor('./inference_model')
 result = predictor.predict(image='xiaoduxiong_test_image/JPEGImages/WeChatIMG110.jpeg')
 ```
 
-### C++部署
-
-C++部署方案位于目录`deploy/cpp/`下,且独立于PaddleX其他模块。该方案支持在 Windows 和 Linux 完成编译、二次开发集成和部署运行。具体使用方法和编译:
-
-- Linux平台:[linux](deploy_cpp_linux.md)
-- window平台:[windows](deploy_cpp_win_vs2019.md)
-
-### OpenVINO部署demo
-
-OpenVINO部署demo位于目录`deploy/openvino/`下,且独立于PaddleX其他模块,该demo目前支持在 Linux 完成编译和部署运行。目前PaddleX到OpenVINO的部署流程如下:
-
-graph LR
-   PaddleX --> ONNX --> OpenVINO IR --> OpenVINO Inference Engine
-#### step1
-
-PaddleX输出ONNX模型方法如下:
-
-```
-paddlex --export_onnx --model_dir=./xiaoduxiong_epoch_12 --save_dir=./onnx_model
-```
-
-|目前支持的模型|
-|-----|
-|ResNet18|
-|ResNet34|
-|ResNet50|
-|ResNet101|
-|ResNet50_vd|
-|ResNet101_vd|
-|ResNet50_vd_ssld|
-|ResNet101_vd_ssld
-|DarkNet53|
-|MobileNetV1|
-|MobileNetV2|
-|DenseNet121|
-|DenseNet161|
-|DenseNet201|
-
-得到ONNX模型后,OpenVINO的部署参考:[OpenVINO部署](deploy_openvino.md)
-
-### 预测性能对比
-
-#### 测试环境
+## 预测性能对比
+### 测试环境
 
 - CUDA 9.0
 - CUDNN 7.5
@@ -84,6 +39,9 @@ paddlex --export_onnx --model_dir=./xiaoduxiong_epoch_12 --save_dir=./onnx_model
 - Executor 指采用paddlepaddle普通的python预测方式
 - Batch Size均为1,耗时单位为ms/image,只计算模型运行时间,不包括数据的预处理和后处理
 
+### 性能对比
+
+
 | 模型 | AnalysisPredictor耗时 | Executor耗时 | 输入图像大小 |
 | :---- | :--------------------- | :------------ | :------------ |
 | resnet50 | 4.84 | 7.57 | 224*224 |
@@ -95,7 +53,3 @@ paddlex --export_onnx --model_dir=./xiaoduxiong_epoch_12 --save_dir=./onnx_model
 | faster_rcnn_r50_1x | 326.11 | 347.22 | 800*1067 |
 | mask_rcnn_r50_fpn_1x | 67.49 | 91.02 | 800*1088 |
 | mask_rcnn_r50_1x | 326.11 | 350.94 | 800*1067 |
-
-## 移动端部署
-
-> Lite模型导出正在集成中,即将开源...

+ 9 - 0
docs/tutorials/deploy/deploy_server/index.rst

@@ -0,0 +1,9 @@
+服务端部署
+==============
+
+.. toctree::
+   :maxdepth: 2
+
+   deploy_python.md
+   deploy_cpp/index.rst
+   encryption.md

二進制
docs/tutorials/deploy/images/vs2019_step4.png.bk


+ 5 - 2
docs/tutorials/deploy/index.rst

@@ -1,8 +1,11 @@
 多端部署
 ==============
 
+本文档指引用户如何采用更高性能地方式来部署使用PaddleX训练的模型。使用本文档模型部署方式,会在模型运算过程中,对模型计算图进行优化,同时减少内存操作,相对比普通的paddlepaddle模型加载和预测方式,预测速度平均可提升1倍,具体各模型性能对比见服务端Python部署的预测性能对比章节。
+
 .. toctree::
    :maxdepth: 2
-   :caption: 文档目录:
 
-   
+   deploy_server/index.rst
+   deploy_openvino.md
+   deploy_lite.md