深度学习模型如何服务化是一个机器学习领域工程方面的热点,现在业内一个比较主流的做法是将模型和模型的服务环境做成docker image。这样做的一个好处是屏蔽了模型对环境的依赖,因为深度学习模型在服务的时候可能对各种框架版本和依赖库有要求,解决运行环境问题一直是个令人头痛的事情。
将模型通过docker服务化后意味着深度学习模型可以在各种环境使用,比如云端直接通过k8s调度拉起,或者在一些IOT领域,比方说一些智能摄像头也可以通过拉起镜像服务的方式使用模型。
看来一些网上的资料,发现大部分资料没有讲得很清楚如何容器化部署TF模型,今天把我自己的学习笔记分享下。
模型部署分4步,首先要准备一个TensorFlow模型,还要准备一个docker环境,接着构建自己的docker服务,然后发送请求给docker服务做测试。
可以直接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
直接在这个地址下载: https://docs.docker.com/get-docker/
安装完成后可以在Terminal中输入docker -v,返回版本号信息说明安装完成:
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 &
如果不报错,这个服务就顺利拉起来了。
可以通过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]
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删