TensorFlow Serving 入门教程(Windows)
网上大多数的教程都是基于Linux的,虽说使用起来区别不是很大,但还是有些地方需要注意的,特此写了这篇 Windows下TensorFlow Serving 的入门使用教程
TensorFlow Serving 介绍
TensorFlow Serving 是一个用于机器学习模型 serving 的高性能开源库,可以将训练好的模型直接上线并提供服务。其一个重要特性是:它支持模型热更新与自动模型版本管理,这意味着一旦部署 TensorFlow Serving 后,你再也不需要为线上服务操心,只需要关心你的线下模型训练。
TF Serving采用客户端/服务端模式,其通信方式有两种 gRPC和REST API(注:后者需TensorFlow 1.8及更高版本),下图为TensorFlow Serving的框架图:
Docker 安装 TensorFlow Serving
安装TensorFlow Serving有三种方法:Docker,二进制,源码编译。本文只介绍其中最简单、最直接的方法:Docker 安装。如想尝试其他方式可以参考 https://www.tensorflow.org/tfx/serving/setup.
-
Docker 安装
可参考:https://www.runoob.com/docker/windows-docker-install.html
-
使用docker 拉取 TensorFlow Serving 最新版镜像
docker pull tensorflow/serving # 默认为 latest版本
如需拉取其他版本可以参考dockers hub tensorflow / serve repo
-
获取官方服务仓库(其中demo部分可以测试服务是否能够正常启动)
# 新建一个文件用于存放官方示例代码, 本文直接放在E盘下 git clone https://github.com/tensorflow/serving cd serving # 官方示例代码位置 E:/serving/tensorflow_serving/servables/tensorflow/testdata
Docker 运行 TensorFlow Serving 实例
-
使用docker命令启动服务(以 REST API 方式,端口:8501)
TESTDATA="E:/serving/tensorflow_serving/servables/tensorflow/testdata" docker run -t --rm -p 8501:8501 \ -v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \ -e MODEL_NAME=half_plus_two \ tensorflow/serving '&'
建立磁盘映射除了使用-v参数,也可以使用mount参数:
docker run -p 8501:8501 --mount type=bind,source=E:/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 '&'
其中参数解析:
–mount: 表示要进行挂载
source: 指定要运行部署的模型地址, 也就是挂载的源,这个是在宿主机上的servable模型目录(pb格式模型而不是checkpoint模型)==注意:==此地址必须是模型的绝对路径!!!
target: 这个是要挂载的目标位置,也就是挂载到docker容器中的哪个位置,这是docker容器中的目录,模型默认挂在/models/目录下,如果改变路径会出现找不到model的错误
-t: 指定的是挂载到哪个容器
-d: 后台运行
-p: 指定主机到docker容器的端口映射
-e: 环境变量
-v: docker数据卷
–name: 指定容器name,后续使用比用container_id更方便运行效果:
-
Windows 客户端访问服务
重新打开一个测试窗口,这里使用curl命令:
curl -XPOST http://localhost:8501/v1/models/half_plus_two:predict -d "{\"instances\":[1.0, 2.0, 5.0]}"
(注:这里需要注意,源码中half_plus_two的模型版本是00000123,但在访问时也必须输入v1而不是v000000123。)
运行效果:
参考文献
官方介绍
TensorFlow Serving使用指南
TensorFlow Serving入门
tensorflow serving docker
tensorflow serving + docker部署模型
使用tensorflow-serving部署tensorflow模型
更多推荐
所有评论(0)