tensorflow serving部署模型

tensorflow serving部署模型

1.安装相关依赖包

安装grpc

pip install grpcio

安装tensorflow-serving 依赖关系

sudo yum install -y \
        build-essential \
        curl \
        libcurl3-dev \
        git \
        libfreetype6-dev \
        libpng12-dev \
        libzmq3-dev \
        pkg-config \
        python-dev \
        python-numpy \
        python-pip \
        software-properties-common \
        swig \
        zip \
        zlib1g-dev

准备tensorflow-serving的docker环境

docker pull tensorflow/serving

安装TensorFlow Serving Python API PIP package

pip install tensorflow-serving-api

2.根据tensorflow-serving的要求生成相应结构的模型

代码:
tensorflow serving部署模型_第1张图片
生成模型:
在这里插入图片描述
注意,这里将模型保存在了"demo_model/版本号"文件夹中,而不是直接保存在了"demo_model"文件夹中,这是因为TensorFlow Serving要求在模型目录下加一层版本目录,来进行版本维护、热更新等。

3.启动tensorflow-serving docker容器

有两种方式:Restful方式和gRPC方式。
(1)Restful方式
端口:8501
部署流程:
①根据生成模型目录,将模型挂载到docker中,运行启动命令
②服务启动
③Rest api调用,模型预测

(2)gRPC方式
端口:8500
部署流程:
①根据生成模型目录,将模型挂载到docker中,运行启动命令
②服务启动
③编写测试py
④运行测试命令,模型预测。如:

python tensorflow_serving/example/mnist_client.py --num_tests=1000 --server=127.0.0.1:8500

下面以Restful方式为例:
根据生成模型目录,将模型挂载到docker中,运行启动命令:

docker run -p 8501:8501 \
 -v /tmp/tfserving/serving/models/demo_model:/models/demo_model: \
 -e MODEL_NAME=demo_model \
 -t tensorflow/serving &

服务启动:
tensorflow serving部署模型_第2张图片
注意,这里的模型所在路径是刚才"demo_model"目录的路径,而不是"demo_model/版本号"目录的路径,因为TensorFlow Serving认为用户的模型所在路径中包含了多个版本的模型。预测时,默认加载路径下版本号最大的模型(认为其最新),进行预测。

4.Rest api调用,模型预测

单样本预测,运行命令:

curl -d '{"instances": [[2]]}' -X POST http://localhost:8501/v1/models/demo_model:predict

结果:
在这里插入图片描述

多样本预测,运行命令:

curl -d '{"instances": [[2], [3], [5]]}' -X POST http://localhost:8501/v1/models/demo_model:predict

结果:
在这里插入图片描述
注意,instances是一个list,list中每个元素是一个待预测实例,每个实例里面是所有参数的值, 所以参数按照这种方式构造就可以了。

5.Rest api调用,查看指定模型信息

运行命令:

curl http://localhost:8501/v1/models/demo_model

tensorflow serving部署模型_第3张图片

你可能感兴趣的:(NLP)