实操将TensorFlow模型部署成Docker服务

2020 年 6 月 20 日 凡人机器学习
1
背景


深度学习模型如何服务化是一个机器学习领域工程方面的热点,现在业内一个比较主流的做法是将模型和模型的服务环境做成docker image。这样做的一个好处是屏蔽了模型对环境的依赖,因为深度学习模型在服务的时候可能对各种框架版本和依赖库有要求,解决运行环境问题一直是个令人头痛的事情。


将模型通过docker服务化后意味着深度学习模型可以在各种环境使用,比如云端直接通过k8s调度拉起,或者在一些IOT领域,比方说一些智能摄像头也可以通过拉起镜像服务的方式使用模型。


看来一些网上的资料,发现大部分资料没有讲得很清楚如何容器化部署TF模型,今天把我自己的学习笔记分享下。


2
详细流程


模型部署分4步,首先要准备一个TensorFlow模型,还要准备一个docker环境,接着构建自己的docker服务,然后发送请求给docker服务做测试。


(1)准备TensorFlow模型

可以直接clone这个项目:https://github.com/tensorflow/serving


然后找到以下这个路径下的叫“saved_model_half_plus_two_cpu”这个模型,这个模型比较简单,就是将预测数据除以2再加2。举个例子,假设预测数据是5,那么预测结果是5/2+2=4.5

/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu

(2)准备Docker环境


直接在这个地址下载:https://docs.docker.com/get-docker/


安装完成后可以在Terminal中输入docker -v,返回版本号信息说明安装完成:


(3)构建TensorFlow模型服务


首先要从docker仓库拉取TensorFlow Serving

docker pull tensorflow/serving

构建模型服务,命令如下:

docker run -t --rm -p 8501:8501 -v "{model_path}:/models/half_plus_two"  -e MODEL_NAME=half_plus_two tensorflow/serving &


  • 其中{model_path}需要替换成步骤一中下载好的模型

  • -p表示端口号,8500是grpc通信端口,8501是restful_api通信端口

  • /models/half_plus_two表示把本地模型放到了docker中的/models/half_plus_two路径下

如果不报错,这个服务就顺利拉起来了。


(4)测试docker服务


可以通过curl命令发送预测样本给已经部署好的docker服务,具体命令如下:


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

预测样本是“instances": [1.0, 2.0, 5.0],预测结果如下,结果是正确的,每个输入值都被除以2再加上2:

"predictions": [2.53.04.5]


登录查看更多
6

相关内容

Docker - An open platform for distributed applications for developers and sysadmins.
专知会员服务
171+阅读 · 2020年6月4日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
通过Docker安装谷歌足球游戏环境
CreateAMind
11+阅读 · 2019年7月7日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
基于TensorFlow的深度学习实战
七月在线实验室
9+阅读 · 2018年4月25日
手把手教你如何部署深度学习模型
全球人工智能
17+阅读 · 2018年2月5日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
Doubly Attentive Transformer Machine Translation
Arxiv
4+阅读 · 2018年7月30日
Arxiv
6+阅读 · 2018年6月21日
Arxiv
8+阅读 · 2018年5月1日
Arxiv
4+阅读 · 2018年1月29日
VIP会员
相关VIP内容
专知会员服务
171+阅读 · 2020年6月4日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
相关资讯
通过Docker安装谷歌足球游戏环境
CreateAMind
11+阅读 · 2019年7月7日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
基于TensorFlow的深度学习实战
七月在线实验室
9+阅读 · 2018年4月25日
手把手教你如何部署深度学习模型
全球人工智能
17+阅读 · 2018年2月5日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
Top
微信扫码咨询专知VIP会员