提交 f749f2db 编写于 作者: X xuyongfei

serving doc update client

上级 d213468a
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
- [导出模型](#导出模型) - [导出模型](#导出模型)
- [启动Serving推理服务](#启动serving推理服务) - [启动Serving推理服务](#启动serving推理服务)
- [客户端示例](#客户端示例) - [客户端示例](#客户端示例)
- [Python客户端示例](#python客户端示例)
- [C++客户端示例](#cpp客户端示例)
<!-- /TOC --> <!-- /TOC -->
<a href="https://gitee.com/mindspore/docs/blob/master/tutorials/source_zh_cn/advanced_use/serving.md" target="_blank"><img src="../_static/logo_source.png"></a> <a href="https://gitee.com/mindspore/docs/blob/master/tutorials/source_zh_cn/advanced_use/serving.md" target="_blank"><img src="../_static/logo_source.png"></a>
...@@ -32,10 +34,10 @@ ms_serving [--help] [--model_path <MODEL_PATH>] [--model_name <MODEL_NAME>] ...@@ -32,10 +34,10 @@ ms_serving [--help] [--model_path <MODEL_PATH>] [--model_name <MODEL_NAME>]
|参数名|属性|功能描述|参数类型|默认值|取值范围| |参数名|属性|功能描述|参数类型|默认值|取值范围|
|---|---|---|---|---|---| |---|---|---|---|---|---|
|`--help`|可选|显示启动命令的帮助信息。|-|-|-| |`--help`|可选|显示启动命令的帮助信息。|-|-|-|
|`--model_path <MODEL_PATH>`|必选|指定待加载模型的存放路径。|str|空|-| |`--model_path=<MODEL_PATH>`|必选|指定待加载模型的存放路径。|str|空|-|
|`--model_name <MODEL_NAME>`|必选|指定待加载模型的文件名。|str|空|-| |`--model_name=<MODEL_NAME>`|必选|指定待加载模型的文件名。|str|空|-|
|`--port <PORT>`|可选|指定Serving对外的端口号。|int|5500|1~65535| |`--port=<PORT>`|可选|指定Serving对外的端口号。|int|5500|1~65535|
|`--device_id <DEVICE_ID>`|可选|指定使用的设备号|int|0|0~7| |`--device_id=<DEVICE_ID>`|可选|指定使用的设备号|int|0|0~7|
> 执行启动命令前,需将`/{your python path}/lib:/{your python path}/lib/python3.7/site-packages/mindspore/lib`对应的路径加入到环境变量LD_LIBRARY_PATH中 。 > 执行启动命令前,需将`/{your python path}/lib:/{your python path}/lib/python3.7/site-packages/mindspore/lib`对应的路径加入到环境变量LD_LIBRARY_PATH中 。
...@@ -48,30 +50,58 @@ ms_serving [--help] [--model_path <MODEL_PATH>] [--model_name <MODEL_NAME>] ...@@ -48,30 +50,58 @@ ms_serving [--help] [--model_path <MODEL_PATH>] [--model_name <MODEL_NAME>]
```python ```python
python add_model.py python add_model.py
``` ```
执行脚本,生成add.pb文件,该模型的输入为两个shape为[4]的一维Tensor,输出结果是两个输入Tensor之和。 执行脚本,生成`tensor_add.mindir`文件,该模型的输入为两个shape为[4]的一维Tensor,输出结果是两个输入Tensor之和。
### 启动Serving推理服务 ### 启动Serving推理服务
`ms_serving`打包在MindSpore whl包安装路径中。
```bash ```bash
ms_serving --model_path={current path} --model_name=add.pb ms_serving --model_path={model directory} --model_name=tensor_add.mindir
``` ```
当服务端打印日志`MS Serving Listening on 0.0.0.0:5500`时,表示Serving服务已加载推理模型完毕。 当服务端打印日志`MS Serving Listening on 0.0.0.0:5500`时,表示Serving服务已加载推理模型完毕。
### 客户端示例 ### 客户端示例
执行如下命令,编译一个客户端示例程序,并向Serving服务发送推理请求。 #### <span name="python客户端示例">Python客户端示例</span>
获取[ms_client.py](https://gitee.com/mindspore/mindspore/blob/master/serving/example/python_client/ms_client.py),启动Python客户端。
```bash ```bash
cd mindspore/serving/example/cpp_client python ms_client.py
mkdir build
cmake ..
make
./ms_client --target=localhost:5500
``` ```
显示如下返回值说明Serving服务已正确执行Add网络的推理。 显示如下返回值说明Serving服务已正确执行Add网络的推理。
``` ```
Compute [1, 2, 3, 4] + [1, 2, 3, 4] ms client received:
Add result is [2, 4, 6, 8] [2. 2. 2. 2.]
client received: RPC OK
``` ```
> 编译客户端要求用户本地已安装c++版本的[gRPC](https://gRPC.io),并将对应路径加入到环境变量`PATH`中。
#### <span name="cpp客户端示例">C++客户端示例</span>
1. 获取客户端示例执行程序
首先需要下载[MindSpore源码](https://gitee.com/mindspore/mindspore)。有两种方式编译并获取客户端示例程序:
+ 从源码编译MindSpore时候,将会编译产生Serving C++客户端示例程序,可在`build/mindspore/serving/example/cpp_client`目录下找到`ms_client`可执行程序。
+ 独立编译:
需要先预装[gRPC](https://gRPC.io)。
然后,在MindSpore源码路径中执行如下命令,编译一个客户端示例程序。
```bash
cd mindspore/serving/example/cpp_client
mkdir build && cd build
cmake -D GRPC_PATH={grpc_install_dir} ..
make
```
其中`{grpc_install_dir}`为gRPC安装时的路径,请替换为实际gRPC安装路径。
2. 启动客户端
执行ms_client,向Serving服务发送推理请求:
```bash
./ms_client --target=localhost:5500
```
显示如下返回值说明Serving服务已正确执行Add网络的推理。
```
Compute [1, 2, 3, 4] + [1, 2, 3, 4]
Add result is [2, 4, 6, 8]
client received: RPC OK
```
客户端代码主要包含以下几个部分: 客户端代码主要包含以下几个部分:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册