diff --git a/deploy/README.md b/deploy/README.md index 515b1a16878efe8b1d18622aa811a335a285cdac..7fe3219882c3c8d863824829baf6742b74759d2f 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -1,7 +1,16 @@ -# 多端安全部署 +# 模型部署 本目录为PaddleX模型部署代码,编译和使用教程参考: -- [服务端部署(支持Python部署、C++部署、模型加密部署)](../docs/tutorials/deploy/deploy_server/) -- [OpenVINO部署](../docs/tutorials/deploy/deploy_openvino.md) -- [移动端部署](../docs/tutorials/deploy/deploy_lite.md) +- [服务端部署](../docs/deploy/server/) + - [Python部署](../docs/deploy/server/python.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) diff --git a/docs/apis/deploy.md b/docs/apis/deploy.md index 0b34472b6bfaf008fd4319ab8273e7e801d60382..dd6812452b09b54fd2cf8def2f0085d3dff603d4 100644 --- a/docs/apis/deploy.md +++ b/docs/apis/deploy.md @@ -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进行预测。 > * **gpu_id** (int): 使用的GPU序列号。 > * **use_mkl** (bool): 是否使用mkldnn加速库。 diff --git a/docs/deploy/export_model.md b/docs/deploy/export_model.md index 8a51c30fa32cfa375e9e76c212b2bd6a16d3f1be..a87c0ea52ba2755b7aa956db6ed27976341228a4 100644 --- a/docs/deploy/export_model.md +++ b/docs/deploy/export_model.md @@ -1,16 +1,26 @@ # 部署模型导出 -在服务端部署的模型需要首先将模型导出为inference格式模型,导出的模型将包括`__model__`、`__params__`和`model.yml`三个文名,分别为模型的网络结构,模型权重和模型的配置文件(包括数据预处理参数等等)。在安装完PaddleX后,在命令行终端使用如下命令导出模型到当前目录`inferece_model`下。 -> 可直接下载小度熊分拣模型测试本文档的流程[xiaoduxiong_epoch_12.tar.gz](https://bj.bcebos.com/paddlex/models/xiaoduxiong_epoch_12.tar.gz) +在服务端部署模型时需要将训练过程中保存的模型导出为inference格式模型,导出的inference格式模型包括`__model__`、`__params__`和`model.yml`三个文件,分别表示模型的网络结构、模型权重和模型的配置文件(包括数据预处理参数等)。 + +在安装完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 ``` -使用TensorRT预测时,需指定模型的图像输入shape:[w,h]。 -**注**: -- 分类模型请保持于训练时输入的shape一致。 -- 指定[w,h]时,w和h中间逗号隔开,不允许存在空格等其他字符 +| 参数 | 说明 | +| ---- | ---- | +| --export_inference | 是否将模型导出为用于部署的inference格式,指定即为True | +| --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] diff --git a/docs/deploy/nvidia-jetson.md b/docs/deploy/nvidia-jetson.md index 709799b089b9e8e8cd2dd44ead08bb743b84c347..7b249a5ec981c318067ee455760898bbb87b040d 100644 --- a/docs/deploy/nvidia-jetson.md +++ b/docs/deploy/nvidia-jetson.md @@ -1,7 +1,7 @@ -# 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 @@ -19,7 +19,7 @@ ### Step2: 下载PaddlePaddle C++ 预测库 paddle_inference -目前PaddlePaddle为Nvidia-Jetson 提供了一个基于1.6.2版本的C++ 预测库。 +目前PaddlePaddle为Nvidia Jetson提供了一个基于1.6.2版本的C++ 预测库。 | 版本说明 | 预测库(1.6.2版本) | | ---- | ---- | diff --git a/docs/deploy/server/cpp/index.rst b/docs/deploy/server/cpp/index.rst index b366d1e6aeba1ef191b3a2319825df84ecaf81de..a65cb3501c8b392362e8c871898fca7360097496 100755 --- a/docs/deploy/server/cpp/index.rst +++ b/docs/deploy/server/cpp/index.rst @@ -1,4 +1,4 @@ -服务端C++部署 +C++部署 ======================================= diff --git a/docs/deploy/server/python.md b/docs/deploy/server/python.md index 66ea48f9932004f7d97371bce3b85ed724e6a496..e30e2f41e40b46dc3c24ec3ea924f2ce66f19095 100644 --- a/docs/deploy/server/python.md +++ b/docs/deploy/server/python.md @@ -1,11 +1,16 @@ # 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 predictor = pdx.deploy.Predictor('./inference_model') result = predictor.predict(image='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) ``` -> 关于预测速度的说明:采用Paddle的Predictor进行预测时,由于涉及到内存显存初始化等原因,在模型加载后刚开始预测速度会较慢,一般在模型运行20~50后(即预测20~30张图片)预测速度才会稳定。 +**关于预测速度的说明**:加载模型后前几张图片的预测速度会较慢,这是因为运行启动时涉及到内存显存初始化等步骤,通常在预测20-30张图片后模型的预测速度表现稳定。 ## 预测性能对比 ### 测试环境 @@ -34,7 +40,7 @@ result = predictor.predict(image_list=image_list) - PaddlePaddle 1.71 - GPU: Tesla P40 - AnalysisPredictor 指采用Python的高性能预测方式 -- Executor 指采用paddlepaddle普通的python预测方式 +- Executor 指采用PaddlePaddle普通的Python预测方式 - Batch Size均为1,耗时单位为ms/image,只计算模型运行时间,不包括数据的预处理和后处理 ### 性能对比 diff --git a/docs/examples/meter_reader.md b/docs/examples/meter_reader.md index e410dd59e3a73f5ae0d0b0647c84629abf312863..6eabe48aa124672ce33caba16f2e93cdb62edc92 100644 --- a/docs/examples/meter_reader.md +++ b/docs/examples/meter_reader.md @@ -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`做好备份。 -3. 按照[Nvidia-Jetson开发板部署]()中的Step2至Step3完成C++预测代码的编译。 +3. 按照[Nvidia Jetson开发板部署](../deploy/nvidia-jetson.md)中的Step2至Step3完成C++预测代码的编译。 4. 编译成功后,可执行程为`build/meter_reader/meter_reader`,其主要命令参数说明如下: diff --git a/examples/meter_reader/README.md b/examples/meter_reader/README.md index 37beef50d1d1e09ec0bd97cebd241a5484e0a9be..f8c8388f395bbf64e7111e873f4e269702b3c6eb 100644 --- a/examples/meter_reader/README.md +++ b/examples/meter_reader/README.md @@ -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`做好备份。 -3. 按照[Nvidia-Jetson开发板部署]()中的Step2至Step3完成C++预测代码的编译。 +3. 按照[Nvidia Jetson开发板部署](../../docs/deploy/nvidia-jetson.md)中的Step2至Step3完成C++预测代码的编译。 4. 编译成功后,可执行程为`build/meter_reader/meter_reader`,其主要命令参数说明如下: