提交 e7b87365 编写于 作者: F FlyingQianMM

rewrite README in deploy directory

上级 7488d339
# 多端安全部署 # 模型部署
本目录为PaddleX模型部署代码,编译和使用教程参考: 本目录为PaddleX模型部署代码,编译和使用教程参考:
- [服务端部署(支持Python部署、C++部署、模型加密部署)](../docs/tutorials/deploy/deploy_server/) - [服务端部署](../docs/deploy/server/)
- [OpenVINO部署](../docs/tutorials/deploy/deploy_openvino.md) - [Python部署](../docs/deploy/server/python.md)
- [移动端部署](../docs/tutorials/deploy/deploy_lite.md) - [C++部署](../docs/deploy/server/cpp/)
- [Windows平台部署](../docs/deploy/server/cpp/windows.md)
- [Linux平台部署](../docs/deploy/server/cpp/linux.md)
- [模型加密部署](../docs/deploy/server/encryption.md)
- [Nvidia Jetson开发板部署](../docs/deploy/nvidia-jetson.md)
- [移动端部署](../docs/deploy/paddlelite/)
- [模型压缩](../docs/deploy/paddlelite/slim)
- [模型量化](../docs/deploy/paddlelite/slim/quant.md)
- [模型裁剪](../docs/deploy/paddlelite/slim/prune.md)
- [Android平台](../docs/deploy/paddlelite/android.md)
...@@ -12,7 +12,7 @@ paddlex.deploy.Predictor(model_dir, use_gpu=False, gpu_id=0, use_mkl=False, use_ ...@@ -12,7 +12,7 @@ paddlex.deploy.Predictor(model_dir, use_gpu=False, gpu_id=0, use_mkl=False, use_
**参数** **参数**
> * **model_dir** (str): 训练过程中保存的模型路径, 注意需要使用导出的inference模型 > * **model_dir** (str): 导出为inference格式的模型路径
> * **use_gpu** (bool): 是否使用GPU进行预测。 > * **use_gpu** (bool): 是否使用GPU进行预测。
> * **gpu_id** (int): 使用的GPU序列号。 > * **gpu_id** (int): 使用的GPU序列号。
> * **use_mkl** (bool): 是否使用mkldnn加速库。 > * **use_mkl** (bool): 是否使用mkldnn加速库。
......
# 部署模型导出 # 部署模型导出
在服务端部署的模型需要首先将模型导出为inference格式模型,导出的模型将包括`__model__``__params__``model.yml`三个文名,分别为模型的网络结构,模型权重和模型的配置文件(包括数据预处理参数等等)。在安装完PaddleX后,在命令行终端使用如下命令导出模型到当前目录`inferece_model`下。 在服务端部署模型时需要将训练过程中保存的模型导出为inference格式模型,导出的inference格式模型包括`__model__``__params__``model.yml`三个文件,分别表示模型的网络结构、模型权重和模型的配置文件(包括数据预处理参数等)。
> 可直接下载小度熊分拣模型测试本文档的流程[xiaoduxiong_epoch_12.tar.gz](https://bj.bcebos.com/paddlex/models/xiaoduxiong_epoch_12.tar.gz)
在安装完PaddleX后,在命令行终端使用如下命令将模型导出。可直接下载小度熊分拣模型来测试本文档的流程[xiaoduxiong_epoch_12.tar.gz](https://bj.bcebos.com/paddlex/models/xiaoduxiong_epoch_12.tar.gz)
``` ```
paddlex --export_inference --model_dir=./xiaoduxiong_epoch_12 --save_dir=./inference_model paddlex --export_inference --model_dir=./xiaoduxiong_epoch_12 --save_dir=./inference_model
``` ```
使用TensorRT预测时,需指定模型的图像输入shape:[w,h]。 | 参数 | 说明 |
**注** | ---- | ---- |
- 分类模型请保持于训练时输入的shape一致。 | --export_inference | 是否将模型导出为用于部署的inference格式,指定即为True |
- 指定[w,h]时,w和h中间逗号隔开,不允许存在空格等其他字符 | --model_dir | 待导出的模型路径 |
| --save_dir | 导出的模型存储路径 |
| --fixed_input_shape | 固定导出模型的输入大小,默认值为None |
使用TensorRT预测时,需固定模型的输入大小,通过`--fixed_input_shape `来制定输入大小[w,h]。
**注意**
- 分类模型的固定输入大小请保持与训练时的输入大小一致;
- 指定[w,h]时,w和h中间逗号隔开,不允许存在空格等其他字符。
``` ```
paddlex --export_inference --model_dir=./xiaoduxiong_epoch_12 --save_dir=./inference_model --fixed_input_shape=[640,960] paddlex --export_inference --model_dir=./xiaoduxiong_epoch_12 --save_dir=./inference_model --fixed_input_shape=[640,960]
......
# Nvidia-Jetson开发板 # Nvidia Jetson开发板
## 说明 ## 说明
本文档在 `Linux`平台使用`GCC 4.8.5``GCC 4.9.4`测试过,如果需要使用更高G++版本编译使用,则需要重新编译Paddle预测库,请参考: [NVIDIA Jetson嵌入式硬件预测库源码编译](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/advanced_guide/inference_deployment/inference/build_and_install_lib_cn.html#id12) 本文档在 `Linux`平台使用`GCC 4.8.5``GCC 4.9.4`测试过,如果需要使用更高G++版本编译使用,则需要重新编译Paddle预测库,请参考: [Nvidia Jetson嵌入式硬件预测库源码编译](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/advanced_guide/inference_deployment/inference/build_and_install_lib_cn.html#id12)
## 前置条件 ## 前置条件
* G++ 4.8.2 ~ 4.9.4 * G++ 4.8.2 ~ 4.9.4
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
### Step2: 下载PaddlePaddle C++ 预测库 paddle_inference ### Step2: 下载PaddlePaddle C++ 预测库 paddle_inference
目前PaddlePaddle为Nvidia-Jetson 提供了一个基于1.6.2版本的C++ 预测库。 目前PaddlePaddle为Nvidia Jetson提供了一个基于1.6.2版本的C++ 预测库。
| 版本说明 | 预测库(1.6.2版本) | | 版本说明 | 预测库(1.6.2版本) |
| ---- | ---- | | ---- | ---- |
......
服务端C++部署 C++部署
======================================= =======================================
......
# Python部署 # Python部署
PaddleX已经集成了基于Python的高性能预测接口,在安装PaddleX后,可参照如下代码示例,进行预测。相关的接口文档可参考[paddlex.deploy](../../apis/deploy.md)
PaddleX已经集成了基于Python的高性能预测接口,在安装PaddleX后,可参照如下代码示例,进行预测。
## 导出预测模型 ## 导出预测模型
可参考[模型导出](../export_model.md)将模型导出为inference格式的模型。
可参考[模型导出](../export_model.md)将模型导出为inference格式。
## 预测部署 ## 预测部署
> 点击下载测试图片 [xiaoduxiong_test_image.tar.gz](https://bj.bcebos.com/paddlex/datasets/xiaoduxiong_test_image.tar.gz)
预测接口说明可参考[paddlex.deploy](../../apis/deploy.md)
点击下载测试图片 [xiaoduxiong_test_image.tar.gz](https://bj.bcebos.com/paddlex/datasets/xiaoduxiong_test_image.tar.gz)
* 单张图片预测 * 单张图片预测
...@@ -14,6 +19,7 @@ import paddlex as pdx ...@@ -14,6 +19,7 @@ import paddlex as pdx
predictor = pdx.deploy.Predictor('./inference_model') predictor = pdx.deploy.Predictor('./inference_model')
result = predictor.predict(image='xiaoduxiong_test_image/JPEGImages/WeChatIMG110.jpeg') result = predictor.predict(image='xiaoduxiong_test_image/JPEGImages/WeChatIMG110.jpeg')
``` ```
* 批量图片预测 * 批量图片预测
``` ```
...@@ -24,7 +30,7 @@ image_list = ['xiaoduxiong_test_image/JPEGImages/WeChatIMG110.jpeg', ...@@ -24,7 +30,7 @@ image_list = ['xiaoduxiong_test_image/JPEGImages/WeChatIMG110.jpeg',
result = predictor.predict(image_list=image_list) result = predictor.predict(image_list=image_list)
``` ```
> 关于预测速度的说明:采用Paddle的Predictor进行预测时,由于涉及到内存显存初始化等原因,在模型加载后刚开始预测速度会较慢,一般在模型运行20~50后(即预测20~30张图片)预测速度才会稳定。 **关于预测速度的说明**:加载模型后前几张图片的预测速度会较慢,这是因为运行启动时涉及到内存显存初始化等步骤,通常在预测20-30张图片后模型的预测速度表现稳定。
## 预测性能对比 ## 预测性能对比
### 测试环境 ### 测试环境
...@@ -34,7 +40,7 @@ result = predictor.predict(image_list=image_list) ...@@ -34,7 +40,7 @@ result = predictor.predict(image_list=image_list)
- PaddlePaddle 1.71 - PaddlePaddle 1.71
- GPU: Tesla P40 - GPU: Tesla P40
- AnalysisPredictor 指采用Python的高性能预测方式 - AnalysisPredictor 指采用Python的高性能预测方式
- Executor 指采用paddlepaddle普通的python预测方式 - Executor 指采用PaddlePaddle普通的Python预测方式
- Batch Size均为1,耗时单位为ms/image,只计算模型运行时间,不包括数据的预处理和后处理 - Batch Size均为1,耗时单位为ms/image,只计算模型运行时间,不包括数据的预处理和后处理
### 性能对比 ### 性能对比
......
...@@ -191,7 +191,7 @@ git clone https://github.com/PaddlePaddle/PaddleX ...@@ -191,7 +191,7 @@ git clone https://github.com/PaddlePaddle/PaddleX
2.`PaddleX/examples/meter_reader/deploy/cpp`下的`meter_reader`文件夹和`CMakeList.txt`拷贝至`PaddleX/deploy/cpp`目录下,拷贝之前可以将`PaddleX/deploy/cpp`下原本的`CMakeList.txt`做好备份。 2.`PaddleX/examples/meter_reader/deploy/cpp`下的`meter_reader`文件夹和`CMakeList.txt`拷贝至`PaddleX/deploy/cpp`目录下,拷贝之前可以将`PaddleX/deploy/cpp`下原本的`CMakeList.txt`做好备份。
3. 按照[Nvidia-Jetson开发板部署]()中的Step2至Step3完成C++预测代码的编译。 3. 按照[Nvidia Jetson开发板部署](../deploy/nvidia-jetson.md)中的Step2至Step3完成C++预测代码的编译。
4. 编译成功后,可执行程为`build/meter_reader/meter_reader`,其主要命令参数说明如下: 4. 编译成功后,可执行程为`build/meter_reader/meter_reader`,其主要命令参数说明如下:
......
...@@ -200,7 +200,7 @@ git clone https://github.com/PaddlePaddle/PaddleX ...@@ -200,7 +200,7 @@ git clone https://github.com/PaddlePaddle/PaddleX
2.`PaddleX/examples/meter_reader/deploy/cpp`下的`meter_reader`文件夹和`CMakeList.txt`拷贝至`PaddleX/deploy/cpp`目录下,拷贝之前可以将`PaddleX/deploy/cpp`下原本的`CMakeList.txt`做好备份。 2.`PaddleX/examples/meter_reader/deploy/cpp`下的`meter_reader`文件夹和`CMakeList.txt`拷贝至`PaddleX/deploy/cpp`目录下,拷贝之前可以将`PaddleX/deploy/cpp`下原本的`CMakeList.txt`做好备份。
3. 按照[Nvidia-Jetson开发板部署]()中的Step2至Step3完成C++预测代码的编译。 3. 按照[Nvidia Jetson开发板部署](../../docs/deploy/nvidia-jetson.md)中的Step2至Step3完成C++预测代码的编译。
4. 编译成功后,可执行程为`build/meter_reader/meter_reader`,其主要命令参数说明如下: 4. 编译成功后,可执行程为`build/meter_reader/meter_reader`,其主要命令参数说明如下:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册