Tensorflow Serving

TensorFlow Serving是GOOGLE开源的一个服务系统,适用于部署机器学习模型,灵活、性能高、可用于生产环境。 TensorFlow Serving可以轻松部署新算法和实验,同时保持相同的服务器架构和API,它具有以下特性:

  • 支持模型版本控制和回滚
  • 支持并发,实现高吞吐量
  • 开箱即用,并且可定制化
  • 支持多模型服务
  • 支持批处理
  • 支持热更新
  • 支持分布式模型
  • 易于使用的inference api
  • 为gRPC expose port 8500,为REST API expose port 8501

接下来进行进行tensorflow serving例子的部署

官网教程地址:
https://github.com/tensorflow/serving

1、安装docker

安装官方参考地址:
https://docs.docker.com/install/linux/docker-ce/ubuntu/
注:若安装过程中出现如下报错信息

”Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied“

解决办法:
docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。
docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
docker ps    #测试docker命令是否可以使用sudo正常使用

2、安装tensorflow serving

3、TF Serving客户端和服务端的通信方式有两种(gRPC和RESTfull API)

1、准备tensorflow serving的Docker环境

docker pull tensorflow/serving

2、下载官方示例代码

git clone https://github.com/tensorflow/serving
一、RESTfull API形式

3、运行tensorflow serving

docker run -p 8501:8501 --mount type=bind,source=/home/jinyan/serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu,target=/models/half_plus_two -e MODEL_NAME=half_plus_two -t tensorflow/serving &

这里需要注意的是,较早的docker版本没有“–mount”选项,比如Ubuntu16.04默认安装的docker就没有

4、客户端验证(在服务器本机测试模型是否正常工作)

curl -d '{"instances": [1.0, 2.0, 5.0]}' \
  -X POST http://localhost:8501/v1/models/half_plus_two:predict

返回结果若为{ "predictions": [2.5, 3.0, 4.5] }说明模型部署成功。
注:这里需要注意,源码中half_plus_two的模型版本是00000123,但在访问时也必须输入v1而不是v000000123

二、gRPC形式

3、模型编译

python tensorflow_serving/example/mnist_saved_model.py models/mnist

4、运行tensorflow serving

docker run -p 8500:8500 \
--mount type=bind,source=$(pwd)/models/mnist,target=/models/mnist \
-e MODEL_NAME=mnist -t tensorflow/serving

5、客户端验证

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

返回结果若为Inference error rate: 11.13%则说明模型部署成功。
注:直接运行mnist_client.py会出现找不到“tensorflow_serving”的问题,需要手动安装:

pip install tensorflow-serving-api

另一个项目叫做Simple TensorFlow Serving

git地址:https://github.com/tobegit3hub/simple_tensorflow_serving

1、安装

pip install simple_tensorflow_serving

2、下载源代码

git clone https://github.com/tobegit3hub/simple_tensorflow_serving

3、启动serving

simple_tensorflow_serving --model_base_path="./models/tensorflow_template_application_model"

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43843657/article/details/89516508