tensorflow serving docker

简介: 背景介绍 TensorFlow Serving 是一个用于机器学习模型 serving 的高性能开源库。它可以将训练好的机器学习模型部署到线上,使用 gRPC 作为接口接受外部调用。更加让人眼前一亮的是,它支持模型热更新与自动模型版本管理。

背景介绍

 TensorFlow Serving 是一个用于机器学习模型 serving 的高性能开源库。它可以将训练好的机器学习模型部署到线上,使用 gRPC 作为接口接受外部调用。更加让人眼前一亮的是,它支持模型热更新与自动模型版本管理。这意味着一旦部署 TensorFlow Serving 后,你再也不需要为线上服务操心,只需要关心你的线下模型训练。

 TensorFlow Serving的典型的流程如下:学习者(Learner,比如TensorFlow)根据输入数据进行模型训练。等模型训练完成、验证之后,模型会被发布到TensorFlow Serving系统服务器端。客户端提交请求,由服务端返回预测结果。客户端和服务端之间的通信采用的是RPC/REST协议


官方资料

 TensorFlow Serving的中文版资料不多,所以能做的基本上就是参考英文官网的文档,一个是tensorflow serving github官网,一个是tensorflow serving web官网,前者能够稳定打开,后者看天看心情能否打开。

 建议选型tensorflow serving作为tensorflow服务容器的一定要熟读tensorflow serving web官网,要对每个细节扣的很细,这样才能了解TFS能够提供的核心能力。

 补充一点,之前在调研资料的时候发现阿里云也提供基于TFS提供在线预测的云能力,特想了解他们如何解决cpu高消耗的问题


安装选型

 tensorflow serving提供三种安装方式:1、docker安装、2、通过APT安装、3、编译源码,本着快速验验证的原则我们自然而然的选择了docker安装。

 其实按照我们当时的试想如果TFS在性能上有比较明显优势我们可以通过K8S管理docker这样能够非常方便的升级TFS的版本。

 TFS的官方提供的docker可以在TFS的docker官网找到,根据不同的TF版本和是否GPU进行选型,参考当时情况的是TF是1.6.0版本,TFS选型1.12.0,没仔细研究过TFS和TF之间的关系,但是按照TF的版本逻辑在同一个大版本1.X的情况下兼容低版本的API,所以TFS版本更高兼容。

 补充一点,一开始使用TFS最新版本的时候在java API调用方面有些兼容性问题(具体原因没仔细分析),个人建议是TFS的docker版本和编译java api的TFS版本保持一致


安装命令

 TFS的启动命令需要参考TFS本身的命令和docker相关的命令,前者指定TFS的启动参数,后者指定docker的端口和目录映射问题。

docker run -t --rm -p 8500:8500 -p 8501:8501 
-v /home/zhi.wang/tensorflow-serving/model:/models 
-e MODEL_NAME=wdl_model tensorflow/serving:1.12.0 
--enable_batching=true 
--batching_parameters_file=/models/batching_parameters.txt &

说明:

  • -p 8500:8500 -p 8501:8501 用于绑定rpc和rest端口。
  • -v /home/zhi.wang/tensorflow-serving/model:/models 用于绑定目录映射。
  • -e MODEL_NAME=wdl_model指定TFS加载模型名字,和目录tensorflow-serving/model下的模型名字保持一致, 如/home/zhi.wang/tensorflow-serving/model/wdl_model
  • --enable_batching=true 设置TFS开启batch功能。
  • --batching_parameters_file=/models/batching_parameters.txt 绑定批量参数。


batching_parameters

num_batch_threads { value: 40 }
batch_timeout_micros { value: 0 }
max_batch_size { value: 1024 }

说明:

  • 参考github issue设置的TFS的批量参数。


model directory

[wdl_model]# tree
.
├── 1
│   ├── saved_model.pb
│   └── variables
│       ├── variables.data-00000-of-00001
│       └── variables.index
├── 10
│   ├── saved_model.pb
│   └── variables
│       ├── variables.data-00000-of-00001
│       └── variables.index
├── 2
│   ├── saved_model.pb
│   └── variables
│       ├── variables.data-00000-of-00001
│       └── variables.index
├── 3
│   ├── saved_model.pb
│   └── variables
│       ├── variables.data-00000-of-00001
│       └── variables.index
├── 4
│   ├── saved_model.pb
│   └── variables
│       ├── variables.data-00000-of-00001
│       └── variables.index

说明:

  • TFS支持多版本的模型加载,默认会加载数字最大的版本。
  • TFS加载的模型通过export_savedmodel的api生成。
目录
相关文章
|
3月前
|
编译器 TensorFlow 算法框架/工具
windows部署tensorflow serving
windows部署tensorflow serving
|
4月前
|
并行计算 Linux Docker
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
264 0
|
3月前
|
TensorFlow 算法框架/工具 数据安全/隐私保护
如何在云服务器使用docker快速部署jupyter web服务器(Nginx+docker+jupyter+tensorflow)
如何在云服务器使用docker快速部署jupyter web服务器(Nginx+docker+jupyter+tensorflow)
77 0
|
4月前
|
并行计算 Linux Docker
Docker【部署 05】docker使用tensorflow-gpu安装及调用GPU踩坑记录
Docker【部署 05】docker使用tensorflow-gpu安装及调用GPU踩坑记录
114 0
|
9月前
|
机器学习/深度学习 JSON 算法
TensorFlow Serving使用指南
TensorFlow Serving使用指南
255 0
|
11月前
|
人工智能 安全 Cloud Native
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(1)
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(1)
436 0
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(1)
|
11月前
|
Cloud Native 安全 TensorFlow
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(2)
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(2)
212 0
|
11月前
|
弹性计算 Cloud Native TensorFlow
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(3)
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(3)
176 0
|
11月前
|
Cloud Native TensorFlow 算法框架/工具
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(4)
带你读《云原生机密计算最佳实践白皮书》——部署TensorFlow Serving在线推理服务(4)
215 0
|
机器学习/深度学习 存储 数据可视化
搭建docker版TensorFlow
搭建docker版TensorFlow
237 0