diff --git a/docs/tipc/serving/README.md b/docs/tipc/serving/README.md
index c07857208ea3a47be81b3eb09094eb29edc6cd73..47ec38826f843c7a6ebada19b0b08e3dfda0229c 100644
--- a/docs/tipc/serving/README.md
+++ b/docs/tipc/serving/README.md
@@ -18,7 +18,7 @@
(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 服务化部署测试开发。
@@ -55,7 +55,7 @@
#### 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
* `test_tipc/README.md` 文档中对该模型支持的的部署功能进行总体介绍。
* `test_tipc/docs/test_serving.md` 文档中对**Linux GPU/CPU Serving部署**的功能支持情况进行介绍。
-* 根据测试文档,基于配置文件,跑通Serving部署测试过程。
+* 根据测试文档,基于配置文件,跑通Serving部署测试过程,在文档中记录`运行成功的输出日志`。
diff --git a/docs/tipc/serving/seving.md b/docs/tipc/serving/serving.md
similarity index 92%
rename from docs/tipc/serving/seving.md
rename to docs/tipc/serving/serving.md
index f69f9af04e2df5dd6f374aee7f95ea3b7a7da459..0d03f989b2faba0975d9a567dd773283e1664d77 100644
--- a/docs/tipc/serving/seving.md
+++ b/docs/tipc/serving/serving.md
@@ -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 {转换后的客户端模型和配置文件存储路径}
@@ -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
-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
```
+
### 2.3 复制部署样例程序
-【基本流程】
+**【基本流程】**
服务化部署的样例程序的目录地址为:"template/code/"
@@ -99,20 +105,20 @@ python3 -m paddle_serving_client.convert --dirname ./alexnet_infer/ --model_file
- pipeline_http_client.py:用于客户端访问服务的程序,开发者需要设置url(服务地址)、logid(日志ID)和测试图像。
-【实战】
+**【实战】**
如果服务化部署AlexNet网络,需要拷贝上述三个文件到运行目录,建议在`$repo_name/deploy/serving`目录下。
### 2.4 初始化部署引擎
-【基本流程】
+**【基本流程】**
针对模型名称,修改web_service.py中类TIPCExampleService、TIPCExampleOp的名称,以及这些类初始化中任务名称name,同时通过uci_service.prepare_pipeline_config设置配置参数。
同时修改服务配置文件中的配置:OP名称,http_port(服务的http端口),model_config(服务化部署模型的路径),device_type(计算硬件类型),devices(计算硬件ID)
-【实战】
+**【实战】**
针对AlexNet网络,(1)修改web_service.py文件后的代码如下:
@@ -148,9 +154,10 @@ uci_service.run_service()
- devices:使用默认配置"0",0号卡预测
+
### 2.5 开发数据预处理程序
-【基本流程】
+**【基本流程】**
web_service.py文件中的TIPCExampleOp类的preprocess函数用于开发数据预处理程序,包含输入、处理流程和输出三部分。
@@ -169,7 +176,7 @@ web_service.py文件中的TIPCExampleOp类的preprocess函数用于开发数据
```
上述网络输入字典的key可以通过服务化模型配置文件serving_server/serving_server_conf.prototxt中的feed_var字典的name字段获取。
-【实战】
+**【实战】**
针对AlexNet网络的数据预处理开发,需要将[Paddle Inference中的preprocess_ops.py, 待补充文件路径] 复制到Paddle Serving的目录下,修改alex_web_service.py文件中代码如下:
@@ -228,9 +235,10 @@ result, None, ""
针对AlexNet网络的预测结果后处理开发,修改web_service.py文件中AlexNetOp中的postprocess函数相关代码如下:
-```
+```py
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": []}
for score in score_list:
score = score.flatten()
@@ -244,9 +252,10 @@ result, None, ""
```
+
### 2.7 启动模型预测服务
-【基本流程】
+**【基本流程】**
当完成服务化部署引擎初始化、数据预处理和预测结果后处理开发,则可以按如下命令启动模型预测服务:
@@ -254,20 +263,21 @@ result, None, ""
python3 web_service.py &
```
-【实战】
+**【实战】**
针对AlexNet网络, 启动成功的界面如下:
![](./images/serving_startup_visualization.jpg)
+
### 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。
-【实战】
+**【实战】**
针对AlexNet网络, 修改pipeline_http_client.py程序中的url(服务地址)、logid(日志ID)和测试图像地址,其中url改为:
diff --git a/docs/tipc/serving/test_serving.md b/docs/tipc/serving/test_serving.md
index 2c8aa572fb57902d44695cb0524252f5cf9385d8..f8fe0539bc1e50c631a0eb45eb72ff5db52ccff7 100644
--- a/docs/tipc/serving/test_serving.md
+++ b/docs/tipc/serving/test_serving.md
@@ -22,7 +22,7 @@
(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 服务化部署测试开发(**本文档**)。
@@ -169,7 +169,7 @@ Serving服务化部署主要分为以下5个步骤。
* 数据集:为方便快速验证服务化部署过程,需要准备至少1张图像用于测试,可以放在repo中。
-* 环境:可以参考[Linux GPU/CPU 服务化部署功能开发规范](./seving.md)完成Serving部署环境的准备。
+* 环境:可以参考[Linux GPU/CPU 服务化部署功能开发规范](./serving.md)完成Serving部署环境的准备。
@@ -230,13 +230,13 @@ AlexNet中验证配置正确性的脚本:[AlexNet Serving 部署功能测试](
**【基本内容】**
* 补充TIPC首页文档,补充更多部署方式。
-* 撰写测试流程说明文档,模板可以参考:[./template/test/test_serving.md](./template/test/test_serving.md)。
+* 撰写测试流程说明文档,说明文档模板为:[./template/test/test_serving.md](./template/test/test_serving.md)。
可以直接拷贝到自己的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
2. Linux GPU/CPU 基础训练推理测试说明文档:https://github.com/littletomatodonkey/AlexNet-Prod/blob/tipc/pipeline/Step5/AlexNet_paddle/test_tipc/docs/test_serving.md