目前一般使用tf-serving部署深度学习模型,使用tf-serving部署一般要先安装docker,然后使用docker构建serving镜像。
在部署的时候服务默认使用全部的gpu资源,可以指定镜像使用的某一块gpu显卡编号,但是不能指定服务占用gpu资源的百分比。
模型的推理过程还需要进行数据预处理,预处理的过程要放在服务外面,可以通过后台调用shell脚本的方式或者新建一个服务等方法。
如果不用tf-serving部署,可以将模型和代码放在docker容器里,通过flask服务调用模型,这样可以指定模型使用的gpu资源,但是实验表明这种方式推理的速度没有tf-serving快。
如果想要充分利用单块gpu资源,个人认为可以在一个tf-serving里部署多个模型,只要多个模型同时占用的gpu不超过单块gpu资源即可。
综上所述
优势 | 劣势 | 改进 | |
使用tf-serving | 推理过程快,不用额外写服务 | 默认占用所有gpu资源 | 一个服务部署多个模型,但模型占用的gpu资源比例无法确定 |
不使用 | 可以分配gpu资源占比 | 推理过程慢一些,需额外写服务接口 | 暂无 |
原文:https://www.cnblogs.com/danny92/p/12329212.html