未验证 提交 2f896357 编写于 作者: littletomatodonkey's avatar littletomatodonkey 提交者: GitHub

fix name (#5416)

* fix name

* fix log
上级 ea7c2553
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
(1)参考 [《Linux GPU/CPU 基础训练推理开发文档》](../train_infer_python/README.md),完成模型的训练和基于Paddle Inference的模型推理开发。 (1)参考 [《Linux GPU/CPU 基础训练推理开发文档》](../train_infer_python/README.md),完成模型的训练和基于Paddle Inference的模型推理开发。
(2)参考[《Linux GPU/CPU 服务化部署功能开发文档》](./seving.md),在Paddle Inference的模型推理基础上,完成服务化部署能力的开发。 (2)参考[《Linux GPU/CPU 服务化部署功能开发文档》](./serving.md),在Paddle Inference的模型推理基础上,完成服务化部署能力的开发。
(3) 参考[《Linux GPU/CPU 服务化部署测试开发文档》](./test_serving.md),完成 TIPC 服务化部署测试开发。 (3) 参考[《Linux GPU/CPU 服务化部署测试开发文档》](./test_serving.md),完成 TIPC 服务化部署测试开发。
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
#### 2.2.3 说明文档 #### 2.2.3 说明文档
* 参考[AlexNet Serving部署文档](https://github.com/littletomatodonkey/AlexNet-Prod/blob/tipc/pipeline/Step5/AlexNet_paddle/deploy/serving/README.md) * 参考[AlexNet Serving部署文档](https://github.com/littletomatodonkey/AlexNet-Prod/blob/tipc/pipeline/Step5/AlexNet_paddle/deploy/serving)
* 文档中给出服务化部署的数据、环境准备、启动服务、访问服务的具体命令说明。 * 文档中给出服务化部署的数据、环境准备、启动服务、访问服务的具体命令说明。
...@@ -99,4 +99,4 @@ test_tipc ...@@ -99,4 +99,4 @@ test_tipc
* `test_tipc/README.md` 文档中对该模型支持的的部署功能进行总体介绍。 * `test_tipc/README.md` 文档中对该模型支持的的部署功能进行总体介绍。
* `test_tipc/docs/test_serving.md` 文档中对**Linux GPU/CPU Serving部署**的功能支持情况进行介绍。 * `test_tipc/docs/test_serving.md` 文档中对**Linux GPU/CPU Serving部署**的功能支持情况进行介绍。
* 根据测试文档,基于配置文件,跑通Serving部署测试过程。 * 根据测试文档,基于配置文件,跑通Serving部署测试过程,在文档中记录`运行成功的输出日志`
...@@ -69,7 +69,7 @@ Paddle Serving Server更多不同运行环境的whl包下载地址,请参考 ...@@ -69,7 +69,7 @@ Paddle Serving Server更多不同运行环境的whl包下载地址,请参考
【基本流程】 【基本流程】
为了便于模型服务化部署,需要将jit.save保存的静态图模型(具体参考[《Linux GPU/CPU 基础训练推理开发文档》](待补充)中2.2章节)使用paddle_serving_client.convert按如下命令转换为服务化部署模型: 为了便于模型服务化部署,需要将jit.save保存的静态图模型(具体参考[《Linux GPU/CPU 基础训练推理开发文档》](../train_infer_python/README.md) 使用paddle_serving_client.convert按如下命令转换为服务化部署模型:
``` ```
python3 -m paddle_serving_client.convert --dirname {静态图模型路径} --model_filename {模型结构文件} --params_filename {模型参数文件} --serving_server {转换后的服务器端模型和配置文件存储路径} --serving_client {转换后的客户端模型和配置文件存储路径} python3 -m paddle_serving_client.convert --dirname {静态图模型路径} --model_filename {模型结构文件} --params_filename {模型参数文件} --serving_server {转换后的服务器端模型和配置文件存储路径} --serving_client {转换后的客户端模型和配置文件存储路径}
...@@ -78,16 +78,22 @@ python3 -m paddle_serving_client.convert --dirname {静态图模型路径} --mod ...@@ -78,16 +78,22 @@ python3 -m paddle_serving_client.convert --dirname {静态图模型路径} --mod
【实战】 【实战】
针对AlexNet网络,将静态图模型([模型下载地址,待补充])转换为服务化部署模型的示例命令如下,转换完后在本地生成serving_server和serving_client两个文件夹。本教程后续主要使用serving_server文件夹中的模型。 针对AlexNet网络,将静态图模型([下载地址](https://paddle-model-ecology.bj.bcebos.com/model/alexnet_reprod/alexnet_infer.tar) )转换为服务化部署模型的示例命令如下,转换完后在本地生成serving_server和serving_client两个文件夹。本教程后续主要使用serving_server文件夹中的模型。
```python ```python
python3 -m paddle_serving_client.convert --dirname ./alexnet_infer/ --model_filename inference.pdmodel --params_filename inference.pdiparams --serving_server serving_server --serving_client serving_client python3 -m paddle_serving_client.convert \
--dirname ./alexnet_infer/ \
--model_filename inference.pdmodel \
--params_filename inference.pdiparams \
--serving_server serving_server \
--serving_client serving_client
``` ```
<a name="23---"></a> <a name="23---"></a>
### 2.3 复制部署样例程序 ### 2.3 复制部署样例程序
【基本流程】 **【基本流程】**
服务化部署的样例程序的目录地址为:"template/code/" 服务化部署的样例程序的目录地址为:"template/code/"
...@@ -99,20 +105,20 @@ python3 -m paddle_serving_client.convert --dirname ./alexnet_infer/ --model_file ...@@ -99,20 +105,20 @@ python3 -m paddle_serving_client.convert --dirname ./alexnet_infer/ --model_file
- pipeline_http_client.py:用于客户端访问服务的程序,开发者需要设置url(服务地址)、logid(日志ID)和测试图像。 - pipeline_http_client.py:用于客户端访问服务的程序,开发者需要设置url(服务地址)、logid(日志ID)和测试图像。
【实战】 **【实战】**
如果服务化部署AlexNet网络,需要拷贝上述三个文件到运行目录,建议在`$repo_name/deploy/serving`目录下。 如果服务化部署AlexNet网络,需要拷贝上述三个文件到运行目录,建议在`$repo_name/deploy/serving`目录下。
<a name="24---"></a> <a name="24---"></a>
### 2.4 初始化部署引擎 ### 2.4 初始化部署引擎
【基本流程】 **【基本流程】**
针对模型名称,修改web_service.py中类TIPCExampleService、TIPCExampleOp的名称,以及这些类初始化中任务名称name,同时通过uci_service.prepare_pipeline_config设置配置参数。 针对模型名称,修改web_service.py中类TIPCExampleService、TIPCExampleOp的名称,以及这些类初始化中任务名称name,同时通过uci_service.prepare_pipeline_config设置配置参数。
同时修改服务配置文件中的配置:OP名称,http_port(服务的http端口),model_config(服务化部署模型的路径),device_type(计算硬件类型),devices(计算硬件ID) 同时修改服务配置文件中的配置:OP名称,http_port(服务的http端口),model_config(服务化部署模型的路径),device_type(计算硬件类型),devices(计算硬件ID)
【实战】 **【实战】**
针对AlexNet网络,(1)修改web_service.py文件后的代码如下: 针对AlexNet网络,(1)修改web_service.py文件后的代码如下:
...@@ -148,9 +154,10 @@ uci_service.run_service() ...@@ -148,9 +154,10 @@ uci_service.run_service()
- devices:使用默认配置"0",0号卡预测 - devices:使用默认配置"0",0号卡预测
<a name="25---"></a> <a name="25---"></a>
### 2.5 开发数据预处理程序 ### 2.5 开发数据预处理程序
【基本流程】 **【基本流程】**
web_service.py文件中的TIPCExampleOp类的preprocess函数用于开发数据预处理程序,包含输入、处理流程和输出三部分。 web_service.py文件中的TIPCExampleOp类的preprocess函数用于开发数据预处理程序,包含输入、处理流程和输出三部分。
...@@ -169,7 +176,7 @@ web_service.py文件中的TIPCExampleOp类的preprocess函数用于开发数据 ...@@ -169,7 +176,7 @@ web_service.py文件中的TIPCExampleOp类的preprocess函数用于开发数据
``` ```
上述网络输入字典的key可以通过服务化模型配置文件serving_server/serving_server_conf.prototxt中的feed_var字典的name字段获取。 上述网络输入字典的key可以通过服务化模型配置文件serving_server/serving_server_conf.prototxt中的feed_var字典的name字段获取。
【实战】 **【实战】**
针对AlexNet网络的数据预处理开发,需要将[Paddle Inference中的preprocess_ops.py, 待补充文件路径] 复制到Paddle Serving的目录下,修改alex_web_service.py文件中代码如下: 针对AlexNet网络的数据预处理开发,需要将[Paddle Inference中的preprocess_ops.py, 待补充文件路径] 复制到Paddle Serving的目录下,修改alex_web_service.py文件中代码如下:
...@@ -228,9 +235,10 @@ result, None, "" ...@@ -228,9 +235,10 @@ result, None, ""
针对AlexNet网络的预测结果后处理开发,修改web_service.py文件中AlexNetOp中的postprocess函数相关代码如下: 针对AlexNet网络的预测结果后处理开发,修改web_service.py文件中AlexNetOp中的postprocess函数相关代码如下:
``` ```py
def postprocess(self, input_dicts, fetch_dict, data_id, log_id): def postprocess(self, input_dicts, fetch_dict, data_id, log_id):
score_list = fetch_dict["save_infer_model/scale_0.tmp_1"] # 取输出结果
score_list = list(fetch_dict.values())[0]
result = {"class_id": [], "prob": []} result = {"class_id": [], "prob": []}
for score in score_list: for score in score_list:
score = score.flatten() score = score.flatten()
...@@ -244,9 +252,10 @@ result, None, "" ...@@ -244,9 +252,10 @@ result, None, ""
``` ```
<a name="27---"></a> <a name="27---"></a>
### 2.7 启动模型预测服务 ### 2.7 启动模型预测服务
【基本流程】 **【基本流程】**
当完成服务化部署引擎初始化、数据预处理和预测结果后处理开发,则可以按如下命令启动模型预测服务: 当完成服务化部署引擎初始化、数据预处理和预测结果后处理开发,则可以按如下命令启动模型预测服务:
...@@ -254,20 +263,21 @@ result, None, "" ...@@ -254,20 +263,21 @@ result, None, ""
python3 web_service.py & python3 web_service.py &
``` ```
【实战】 **【实战】**
针对AlexNet网络, 启动成功的界面如下: 针对AlexNet网络, 启动成功的界面如下:
![](./images/serving_startup_visualization.jpg) ![](./images/serving_startup_visualization.jpg)
<a name="28---"></a> <a name="28---"></a>
### 2.8 开发客户端访问服务的程序 ### 2.8 开发客户端访问服务的程序
【基本流程】 **【基本流程】**
当成功启动了模型预测服务,可以修改pipeline_http_client.py程序,访问该服务。主要设置url(服务地址)、logid(日志ID)和测试图像。其中服务地址的url的样式为 "http://127.0.0.1:18080/tipc_example/prediction" ,url的设置需要将url中的tipc_example更新为TIPCExampleService类初始化的name。 当成功启动了模型预测服务,可以修改pipeline_http_client.py程序,访问该服务。主要设置url(服务地址)、logid(日志ID)和测试图像。其中服务地址的url的样式为 "http://127.0.0.1:18080/tipc_example/prediction" ,url的设置需要将url中的tipc_example更新为TIPCExampleService类初始化的name。
【实战】 **【实战】**
针对AlexNet网络, 修改pipeline_http_client.py程序中的url(服务地址)、logid(日志ID)和测试图像地址,其中url改为: 针对AlexNet网络, 修改pipeline_http_client.py程序中的url(服务地址)、logid(日志ID)和测试图像地址,其中url改为:
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
(1)参考 [《Linux GPU/CPU 基础训练推理开发文档》](../train_infer_python/README.md),完成模型的训练和基于Paddle Inference的模型推理开发。 (1)参考 [《Linux GPU/CPU 基础训练推理开发文档》](../train_infer_python/README.md),完成模型的训练和基于Paddle Inference的模型推理开发。
(2)参考[《Linux GPU/CPU 服务化部署功能开发文档》](./seving.md),在Paddle Inference的模型推理基础上,完成服务化部署能力的开发。 (2)参考[《Linux GPU/CPU 服务化部署功能开发文档》](./serving.md),在Paddle Inference的模型推理基础上,完成服务化部署能力的开发。
(3)完成 TIPC 服务化部署测试开发(**本文档**)。 (3)完成 TIPC 服务化部署测试开发(**本文档**)。
...@@ -169,7 +169,7 @@ Serving服务化部署主要分为以下5个步骤。 ...@@ -169,7 +169,7 @@ Serving服务化部署主要分为以下5个步骤。
* 数据集:为方便快速验证服务化部署过程,需要准备至少1张图像用于测试,可以放在repo中。 * 数据集:为方便快速验证服务化部署过程,需要准备至少1张图像用于测试,可以放在repo中。
* 环境:可以参考[Linux GPU/CPU 服务化部署功能开发规范](./seving.md)完成Serving部署环境的准备。 * 环境:可以参考[Linux GPU/CPU 服务化部署功能开发规范](./serving.md)完成Serving部署环境的准备。
<a name="=3.2"></a> <a name="=3.2"></a>
...@@ -230,13 +230,13 @@ AlexNet中验证配置正确性的脚本:[AlexNet Serving 部署功能测试]( ...@@ -230,13 +230,13 @@ AlexNet中验证配置正确性的脚本:[AlexNet Serving 部署功能测试](
**【基本内容】** **【基本内容】**
* 补充TIPC首页文档,补充更多部署方式。 * 补充TIPC首页文档,补充更多部署方式。
* 撰写测试流程说明文档,模板可以参考[./template/test/test_serving.md](./template/test/test_serving.md) * 撰写测试流程说明文档,说明文档模板为[./template/test/test_serving.md](./template/test/test_serving.md)
可以直接拷贝到自己的repo中,根据自己的模型进行修改。 可以直接拷贝到自己的repo中,根据自己的模型进行修改。
**【实战】** **【实战】**
AlexNet中`test_tipc`文档如下所示。 参考上面基本内容,具体地,以AlexNet为例,`test_tipc`文档如下所示。
1. TIPC功能总览文档:https://github.com/littletomatodonkey/AlexNet-Prod/blob/tipc/pipeline/Step5/AlexNet_paddle/test_tipc/README.md 1. TIPC功能总览文档:https://github.com/littletomatodonkey/AlexNet-Prod/blob/tipc/pipeline/Step5/AlexNet_paddle/test_tipc/README.md
2. Linux GPU/CPU 基础训练推理测试说明文档:https://github.com/littletomatodonkey/AlexNet-Prod/blob/tipc/pipeline/Step5/AlexNet_paddle/test_tipc/docs/test_serving.md 2. Linux GPU/CPU 基础训练推理测试说明文档:https://github.com/littletomatodonkey/AlexNet-Prod/blob/tipc/pipeline/Step5/AlexNet_paddle/test_tipc/docs/test_serving.md
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册