diff --git a/tutorials/mobilenetv3_prod/Step6/test_tipc/configs/mobilenet_v3_small/serving_infer_cpp.txt b/tutorials/mobilenetv3_prod/Step6/test_tipc/configs/mobilenet_v3_small/serving_infer_cpp.txt
index 7636991ee33b7f11148f0247327a1de4f7727310..69043465c4d9ca0025986c3ba4030dc2ebf7981b 100644
--- a/tutorials/mobilenetv3_prod/Step6/test_tipc/configs/mobilenet_v3_small/serving_infer_cpp.txt
+++ b/tutorials/mobilenetv3_prod/Step6/test_tipc/configs/mobilenet_v3_small/serving_infer_cpp.txt
@@ -12,4 +12,5 @@ serving_dir:./deploy/serving_cpp
--op:GeneralClasOp
--port:9997
--gpu_id:"0"|null
-cpp_client:serving_client.py
\ No newline at end of file
+cpp_client:serving_client.py
+proto_path:deploy/serving_cpp/preprocess/serving_client_conf.prototxt
diff --git a/tutorials/mobilenetv3_prod/Step6/test_tipc/test_serving_infer_cpp.sh b/tutorials/mobilenetv3_prod/Step6/test_tipc/test_serving_infer_cpp.sh
index 5b825d76600d6ce4e453ac41f34534cae5477d96..118f3f5a5fa30a8f31766b4da98e378ad0938b65 100644
--- a/tutorials/mobilenetv3_prod/Step6/test_tipc/test_serving_infer_cpp.sh
+++ b/tutorials/mobilenetv3_prod/Step6/test_tipc/test_serving_infer_cpp.sh
@@ -33,6 +33,8 @@ port_value=$(func_parser_value "${lines[12]}")
gpu_key=$(func_parser_key "${lines[13]}")
gpu_value=$(func_parser_value "${lines[13]}")
cpp_client_value=$(func_parser_value "${lines[14]}")
+proto_path=$(func_parser_value "${lines[15]}")
+
LOG_PATH="./log/${model_name}/${MODE}"
mkdir -p ${LOG_PATH}
@@ -55,7 +57,7 @@ function func_serving(){
trans_model_cmd="${python} ${trans_model_py} ${set_dirname} ${set_model_filename} ${set_params_filename} ${set_serving_server} ${set_serving_client}"
eval $trans_model_cmd
last_status=${PIPESTATUS[0]}
- cp "deploy/serving_cpp/preprocess/serving_client_conf.prototxt" ${serving_client_value}
+ cp ${proto_path} ${serving_client_value}
cd ${serving_dir_value}
status_check $last_status "${trans_model_cmd}" "${status_log}" "${model_name}"
echo $PWD
diff --git a/tutorials/tipc/serving_cpp/serving_cpp.md b/tutorials/tipc/serving_cpp/serving_cpp.md
index 3aaf28013190747fc8a778c1cbfb4aaa69dbc37d..3756f63fcd5b151c5508d54b68f072db86e6af77 100644
--- a/tutorials/tipc/serving_cpp/serving_cpp.md
+++ b/tutorials/tipc/serving_cpp/serving_cpp.md
@@ -156,7 +156,7 @@ cp -r ./template/code/* ./
* [preprocess_op.*](../../mobilenetv3_prod/Step6/deploy/serving_cpp/preprocess/preprocess_op.cpp) 是可能会用到的工具类函数,复用 cpp_infer 中的代码;
-* [serving_client_conf.prototxt](../../mobilenetv3_prod/Step6/deploy/serving_cpp/preprocess/serving_client_conf.prototxt) 由于clint端输入的是原始图像,可能与推理时需要的输入数据类型不同,建议将输入数据类型统一修改成string,tipc测试时每次copy该文件,覆盖自动生成的`serving_client_conf.prototxt`。 具体将 feed_var 中的 feed_type 修改为20,shape修改为1。
+* [serving_client_conf.prototxt](../../mobilenetv3_prod/Step6/deploy/serving_cpp/preprocess/serving_client_conf.prototxt) 由于clint端输入的是原始图像,可能与推理时需要的输入数据类型不同,建议将输入数据类型统一修改成string,tipc测试时每次copy该文件,覆盖自动生成的`serving_client/serving_client_conf.prototxt`。 具体在Clas将 feed_var 中的 feed_type 修改为20,shape修改为1。按模型实际需要修改,可参考[prototxt 字段说明](https://github.com/PaddlePaddle/Serving/blob/v0.9.0/doc/Save_CN.md)
```
feed_var {
diff --git a/tutorials/tipc/serving_cpp/test_serving_cpp.md b/tutorials/tipc/serving_cpp/test_serving_cpp.md
index e9123c95132f54d76c1881bd85337f4d9c766923..d2c9f3d849036dc78dc5a9a8bc376d7f2b7bc8cf 100644
--- a/tutorials/tipc/serving_cpp/test_serving_cpp.md
+++ b/tutorials/tipc/serving_cpp/test_serving_cpp.md
@@ -52,9 +52,10 @@ python run_script
## 2.2 配置文件和运行命令映射解析
-完整的 `serving_infer_cpp.txt` 配置文件共有13行,包含2个方面的内容。
-- Serving 部署模型转换:第4~10行
-- Serving 启动部署服务:第10~13行
+完整的 `serving_infer_cpp.txt` 配置文件共有13行,包含3个方面的内容。
+- Serving 部署模型转换:第4~9行
+- Serving 启动部署服务:第10~14行
+- Serving 启动客户端:第15行
具体内容见 `serving_infer_cpp.txt`。
@@ -91,13 +92,54 @@ python3.7 -m paddle_serving_client.convert --dirname=./inference/resnet50_infer/
- pdmodel文件名:`--model_filename=inference.pdmodel`,则需要修改第6行
- 其他参数以此类推
+
+
### 2.2.2 C++ 服务部署配置参数
+C++ 服务的服务端使用命令行启动。
+
+```
+python3.7 -m paddle_serving_server.serve --model ./deploy/serving_cpp/serving_server/ --op GeneralClasOp --port 9997 --gpu_id "0"
+```
+
+服务端启动配置参数(点击以展开详细内容或者折叠)
+
+
+serving_dir:./deploy/serving_cpp
+--model:serving_server
+--op:GeneralClasOp
+--port:9997
+--gpu_id:"0"|null
+
+| 行号 | 参考内容 | 含义 | key是否需要修改 | value是否需要修改 | 修改内容 |
+|----|-------------------------------------|---------------|-----------|-------------|----------------------------------|
+| 10 | serving_dir:./deploy/serving_cpp | serving服务执行路径 | 否 | 是 | value修改实际路径 |
+| 11 | --model:serving_server | 部署模型名称 | 否 | 是 | value修改为实际部署模型名称 |
+| 12 | --op:GeneralClasOp | 自定义OP名称 | 否 | 是 | value修改自定义模型的名称 |
+| 13 | --port:9997 | 端口号 | 否 | 是 | value修改为实际使用的端口号 |
+| 14 | --gpu_id:"0"|null | 是否使用gpu | 否 | 否 | 默认在"0"号gpu卡和cpu卡上运行 |
+
+
+
+
C++ 服务的客户端采用 PYTHON 语言编写。
```python
python3.7 serving_client.py
```
+
+服务端启动配置参数(点击以展开详细内容或者折叠)
+
+
+| 行号 | 参考内容 | 含义 | key是否需要修改 | value是否需要修改 | 修改内容 |
+|----|-------------------------------------|---------------|-----------|-------------|----------------------------------|
+| 15 | cpp_client:serving_client.py | 客户端服务执行路径 | 否 | 是 | value修改实际路径 |
+| 16 | proto_path:deploy/serving_cpp/preprocess/serving_client_conf.prototxt | 准备好的prototxt路径 | 否 | 是 | value修改为实际的prototxt文件路径 |
+
+
+
+
+
# 3. C++ 服务化部署功能测试开发
@@ -133,7 +175,7 @@ python3.7 -m paddle_serving_client.convert
--serving_client=./deploy/serving_cpp/serving_client/
# 部署
-python3.7 -m paddle_serving_server.serve --model ./deploy/serving_cpp/serving_server/ --port 9993
+python3.7 -m paddle_serving_server.serve --model ./deploy/serving_cpp/serving_server/ --op GeneralClasOp --port 9997 --gpu_id "0"
python3.7 serving_client.py
```