From 494900a070ff0e5e34e5ddeea6bb8a8bb09b75c6 Mon Sep 17 00:00:00 2001 From: zhangyinxia Date: Thu, 17 Dec 2020 14:50:56 +0800 Subject: [PATCH] fix docs --- README_CN.md | 14 +++++++------- docs/architecture.png | Bin 30368 -> 33522 bytes .../example/add/add/servable_config.py | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README_CN.md b/README_CN.md index dcabc22..2ff95d4 100644 --- a/README_CN.md +++ b/README_CN.md @@ -27,12 +27,12 @@ MindSpore Serving是一个轻量级、高性能的服务模块,旨在帮助Min MindSpore Serving架构: -当前MindSpore Serving服务节点分为client,master和worker。client为用户节点,可以直接通过GRPC或RESTful接口方式下发推理服务命令。执行机worker部署了模型服务。当前仅支持Ascend 310和Ascend 910,后续会逐步支持GPU和CPU场景。master节点用来管理所有的执行机worker及其部署的模型信息,并进行任务管理与分发。master和worker可以部署在一个进程中,也可以部署在不同进程中。 +当前MindSpore Serving服务节点分为client,master和worker。client为客户端节点,用户可以直接通过gRPC或RESTful接口方式下发推理服务命令。执行机worker部署了模型服务Servable,这里的Servable可以是单个模型,也可以是多个模型的组合,一个Servable可以通过提供多种方法来提供不同的服务。master节点用来管理所有的执行机worker及其部署的模型信息,并进行任务管理与分发。master和worker可以部署在一个进程中,也可以部署在不同进程中。当前client和master不依赖特定硬件平台,worker节点仅支持Ascend 310和Ascend 910平台,后续会逐步支持GPU和CPU场景。 MindSpore Architecture MindSpore Serving提供以下功能: -- 支持客户端GRPC和RESTful接口。 +- 支持客户端gRPC和RESTful接口。 - 支持组装模型的前处理和后处理。 - 支持batch功能,多实例请求会被拆分组合以满足模型`batch size`需要。 - 提供客户端python简易接口。 @@ -61,7 +61,7 @@ MindSpore Serving依赖MindSpore训练推理框架,安装完[MindSpore](https: sh build.sh -p $MINDSPORE_LIB_PATH ``` - 其中,`build.sh`为`serving`目录下的编译脚本文件,`$MINDSPORE_LIB_PATH`为MindSpore软件包的安装路径下的`lib`路径,例:`softwarepath/mindspore/lib`,该路径包含MindSpore运行依赖的库文件。 + 其中,`build.sh`为`serving`目录下的编译脚本文件,`$MINDSPORE_LIB_PATH`为MindSpore软件包的安装路径下的`lib`路径,例如,`softwarepath/mindspore/lib`,该路径包含MindSpore运行依赖的库文件。 方式二,直接编译Serving,编译时会配套编译MindSpore的包,需要配置MindSpore编译时的[环境变量](https://gitee.com/mindspore/docs/blob/master/install/mindspore_ascend_install_source.md#配置环境变量) : @@ -69,7 +69,7 @@ MindSpore Serving依赖MindSpore训练推理框架,安装完[MindSpore](https: # ascend 310 sh build.sh -e d -V 310 # ascend 910 - sh build.sh -e accend + sh build.sh -e ascend ``` 其中,`build.sh`为`serving`目录下的编译脚本文件,编译完后,在`serving/build/package/`目录下找到whl安装包进行安装: @@ -105,9 +105,9 @@ export LD_LIBRARY_PATH=$MINDSPORE_LIB_PATH:${LD_LIBRARY_PATH} ### 开发者教程 -- [使用GRPC接口](https://www.mindspore.cn/tutorial/inference/zh-CN/serving_grpc.html) -- [使用RESTful接口](https://www.mindspore.cn/tutorial/inference/zh-CN/serving_restful.html) -- [配置模型以提供一个Servable](https://www.mindspore.cn/tutorial/inference/zh-CN/serving_model.html) +- [基于gRPC接口访问MindSpore Serving服务](https://www.mindspore.cn/tutorial/inference/zh-CN/serving_grpc.html) +- [基于RESTful接口访问MindSpore Serving服务](https://www.mindspore.cn/tutorial/inference/zh-CN/serving_restful.html) +- [通过配置模型提供Servable](https://www.mindspore.cn/tutorial/inference/zh-CN/serving_model.html) 有关安装指南、教程和API的更多详细信息,请参阅[用户文档](https://gitee.com/mindspore/serving/tree/master/docs)。 diff --git a/docs/architecture.png b/docs/architecture.png index c303a86254e480a5529ec4f1b8cb6601e2a15ef1..2c3211c8d65776445bd3d1332fdeaabfa34523ed 100644 GIT binary patch literal 33522 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

OU(ZpoD-`%}1^m@;SDJ3j(&3l9pom2&4D7I4fub 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 diff --git a/mindspore_serving/example/add/add/servable_config.py b/mindspore_serving/example/add/add/servable_config.py index f43d687..7c75bb8 100644 --- a/mindspore_serving/example/add/add/servable_config.py +++ b/mindspore_serving/example/add/add/servable_config.py @@ -18,7 +18,7 @@ from mindspore_serving.worker import register import numpy as np -# define preprocess pipeline, the function arg is multi instances, every instance is tuple of inputs +# define preprocess pipeline, the function arg is multi instances, every instance is the tuple of inputs # this example has one input and one output def add_trans_datatype(instances): """preprocess python implement""" @@ -28,8 +28,8 @@ def add_trans_datatype(instances): yield x1.astype(np.float32), x2.astype(np.float32) -# when with_batch_dim set to False, only support 2x2 add -# when with_batch_dim set to True(default), support Nx2 add, while N is view as batch +# when with_batch_dim is set to False, only 2x2 add is supported +# when with_batch_dim is set to True(default), Nx2 add is supported, while N is viewed as batch # float32 inputs/outputs register.declare_servable(servable_file="tensor_add.mindir", model_format="MindIR", with_batch_dim=False)