开发者社区> 晴天哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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生成。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
在Docker Compose上使用GPU运行TensorFlow
容器化和AI是目前开发的大趋势。理想情况下,容器化可以将环境无缝迁移,将配置环境的成本无限降低:但是在容器中配置CUDA并运行TensorFlow一向是个难题。对于初学者以及没有深度学习工作站的用户,AWS和Azure推出了带独立显卡的云服务:但是按需实例价格不便宜,竞价式实例价格公道然而虚拟机不能重启,导致不能按需挂载硬盘并保存工作状态,用户需要编写大量代码时刻对虚拟机进行监控并对结果进行异地保存。Deep Systems对这个问题进行了研究并给出了很好的建议。 用户首先需要配置 CUDA:Deep Systems推荐使用runtime 安装,以免在升级后污染依赖环境。 安装 Dock
158 0
开发函数计算的正确姿势——tensorflow serving
前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。
3443 0
TensorFlow 携手 NVIDIA,使用 TensorRT 优化 TensorFlow Serving 性能
二者相结合后,用户可以轻松地实现 GPU 推理,并获得更佳的性能。
1117 0
tensorflow serving java案例
背景介绍  这篇文章是tensorflow serving java api使用的参考案例,基本上把TFS的核心API的用法都介绍清楚。案例主要分为三部分: 动态更新模型:用于在TFS处于runtime时候动态加载模型。
4001 0
构建Tensorflow RDMA的Docker镜像
RDMA是一个远程通讯技术,它通过Kernel bypass等方式降低数据传输中的延迟和CPU消耗。 在分布式训练中,由于多个Worker之间或者Worker和Paramater Server 之间需要大量传输模型变量。当GPU到达一定数量后,受制于网络带宽以及TCP协议的延迟,通讯往往会成为计算性能的瓶颈,而在分布式训练中使用RDMA技术能够非常明显地提高训练速度。 #### Tenso
3048 0
docker环境下安装tensorflow
下载tensorflow 镜像并运行 [root@Ieat1 ~]# docker run -d --name tensorflow -it -p 8888:8888 tensorflow/tensorflow ff716bcb8642e258eb7...
1547 0
Kubeflow实战系列:利用TensorFlow Serving进行模型预测
本系列将介绍如何在阿里云容器服务上运行Kubeflow, 本文介绍如何使用`TensorFlow Serving`加载训练模型并且进行模型预测。
9305 0
使用TensorFlow,GPU和Docker容器进行深度学习
数据科学家使用GPU来提高TensorFlow的计算速度,但GPU价格昂贵,也需要对其所占用的资源进行认真的管理。本文将带你来一起解决这一问题。
7799 0
谷歌发布 TensorFlow Serving
TensorFlow服务是一个灵活的,高性能的机器学习模型的服务系统,专为生产环境而设计。 TensorFlow服务可以轻松部署新的算法和实验,同时保持相同的服务器体系结构和API。
938 0
基于Docker的TensorFlow机器学习框架搭建和实例源码解读
概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的机器学习开发环境,探索人工智能的奥秘,容器随开随用方便快捷。源码解析TensorFlow容器创建和示例程序运行,为热爱机器学者降低学习难度。 默认机器已经装好了Docker(D
4262 0
+关注
晴天哥
专注java技术,热爱长跑和阅读开源代码 邮箱 lebron374@163.com
403
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载