TensorFlow Docker多显卡部署难题破解

背景

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

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

tensorflow docker 使用多张显卡多张显卡无效 docker部署tensorflow_机器学习

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

详细流程

模型部署分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,返回版本号信息说明安装完成:

tensorflow docker 使用多张显卡多张显卡无效 docker部署tensorflow_docker_02

3.构建TensorFlow模型服务

1)首先要从docker仓库拉取TensorFlow Serving

登录后复制

docker pull tensorflow/serving


2)构建模型服务

命令如下:

登录后复制

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.5, 3.0, 4.5]

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空