TensorFlow-Serving部署分类模型

发布 : 2020-01-22 分类 : 机器学习 浏览 :

使用 Ubuntu 18.04 部署 TensorFlow 分类模型

TensorFlow Serving with Docker

首先按照官方教程的要求安装 Docker。

Install Docker

安装 docker-ce

移除旧版本 docker
sudo apt-get remove docker docker-engine docker.io
安装软件包来允许 apt 通过 HTTPS 使用存储库
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加 docker 的下载源,因为官方还没有 ubuntu18 的下载源,所以先用 ubuntu17(zesty)的
ubuntu14.04 把 zesty 换成 trusty,ubuntu16.04 换成 xenial
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu zesty stable"
安装 docker-ce
sudo apt-get update
sudo apt-get install docker-ce

不使用 sudo 执行 docker 命令
创建 docker 组
sudo groupadd docker
将当前用户加入 docker 组
sudo gpasswd -a ${USER} docker
重启 docker
sudo service docker restart
刷新 docker 组
newgrp - docker

这部分出处:Ubuntu18.04 安装 docker、docker-machine

安装 TensorFlow Serving

CPU

在终端中依次执行以下命令,即可安装。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Download the TensorFlow Serving Docker image and repo
${% endraw %} docker pull tensorflow/serving

git clone https://github.com/tensorflow/serving
# Location of demo models
{% raw %}$ TESTDATA="${% endraw %}(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata"

# Start TensorFlow Serving container and open the REST API port
{% raw %}$ docker run -t --rm -p 8501:8501 \
-v "${% endraw %}TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \
-e MODEL_NAME=half_plus_two \
tensorflow/serving &

# Query the model using the predict API
$ curl -d '{"instances": [1.0, 2.0, 5.0]}' \
-X POST http://localhost:8501/v1/models/half_plus_two:predict

# Returns => { "predictions": [2.5, 3.0, 4.5] }

执行完最后一条命令应该可以得到以下返回结果

1
2
3
4
{
"predictions": [2.5, 3.0, 4.5
]
}%

GPU

运行 GPU serving 镜像与 CPU 镜像操作相同,只是在安装时有所区别。
首先请安装nvidia-docker,接下来拉取 GPU 版的 serving docker。

1
docker pull tensorflow/serving:latest-gpu

后面步骤与 CPU 版本相同。

运行第一个示例

这里我使用之前写好的数字分类模型,项目请查看使用 Tensorflow 训练模型的基本流程

1
2
3
docker run -p 8500:8500 \
--mount type=bind,source=/home/heolis/PythonProject/TensorflowBaseDemo/model128/,target=/models/chart \
-e MODEL_NAME=chart -t tensorflow/serving &
本文作者 : HeoLis
原文链接 : https://ishero.net/TensorFlow-Serving%E9%83%A8%E7%BD%B2%E5%88%86%E7%B1%BB%E6%A8%A1%E5%9E%8B.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

学习、记录、分享、获得

微信扫一扫, 向我投食

微信扫一扫, 向我投食