关于深度学习模型部署

关于深度学习模型部署

  • 问题分析
    首先是模型的使用场景,根据使用场景就可以获取到对应的性能等要求。举个例子来说,如果是要上线给用户使用的,哦吼,恭喜你,这块最起码速度要求就很高,毕竟用户可不像自己人,没有多少耐心一直等你的加载圈转呀转,具体的指标根据场景和应用而定,不过一般会在数毫秒 最多可以到数十毫秒每条的样子。此外,如果是基于网络调用那还好说,机器在自己手上,土豪就可以各显神通了,如果是离线的手机APP,那就还有大小的要求,毕竟动不动让你下个几百M的app看着也烦呀。

    接下来,如果是基于网络调用的,还要看看自己手里的资源够不够,是壕到有专门的GPU用于部署呢,还是只能苦逼地使用CPU呢,如果是GPU部署,那可以偷笑了,GPU部署服务方便的同时性能又好,毕竟各种各样的优化都是苦于资源不够,对于大伙儿来说可以躺赚谁愿意坐着赚钱啊。

    好吧,CPU就CPU,然而CPU服务器里头也是可以区别的,是选择有装好例如python、TensorFlow等环境的呢,还是赤条条的要么自己装要么另寻出路的。

  • 方案介绍

  • 基于预测改造的方案
    在提供服务时,输入是由外部传入的,因此不需要前面的读取文件操作,最后提供预测结果即可,也不需要最后的对比、计算指标的步骤。为了处理接收外部输入、返回预测结果,并做一些业务逻辑相关的处理,需要引入一个处理中心,这个处理中心通常是web框架 如 flask、tornado、Django等,其作用是搭建http服务,将外部输入传给模型,将模型预测结果返回。流程如下图:
    关于深度学习模型部署_第1张图片

  • 基于TF-Serving的方案
    如果在要部署的服务器上不愿或无法装和训练一样的环境,也可以使用TensorFlow推出的Serving工具,此处对小白来说更推荐基于docker的安装方式,只需要安好对应镜像即可,否则得自己编译安装。基于docker安装的话需要提前想好是用cpu版本还是gpu版,根据版本拉取对应的镜像。

那这个TF-Serving是什么样的呢?先来看看基于TF-Serving后最终整个流程是怎么工作的:
关于深度学习模型部署_第2张图片
未完

你可能感兴趣的:(模型部署)