写在前面
随着机器学习/AI的越来越热,相信很多公司算法岗所开发使用的模型也是越来越丰富,伴随的模型的增多一个很严酷的问题肯定会摆在越来越多的公司面前,线上使用的模型会越来越让服务器的内存空间吃紧且使用起来混乱。可能是借鉴了很多编程里面可以调用api调用函数/服务的方式的影响,google在去年提出了原生支持tensorflow的tensorflow serving工具包。它支持模型的热更新和自动版本管理管理。可以通过它让我们更加方便更加高效的部署线上的服务。
基于以上所提的优点,以及本人实习过程中业务的需要,楼主开始接触Google的这一大杀器。写这篇文章的目的有以下几点:1.在学习的时候发现网上可以借鉴的资料很少,所以把自己的一点心得和大家分享;2.自己摸索的时候遇到了很多坑,所以跟大家分享的过程中让您少走弯路;3.在介绍的时候会加入一些楼主的心得,可能会帮助您更好的理解tensorflow serving,并能够更加方便的使用;4.楼主现阶段刚解决的这个任务,所以现在记得最清楚,也作为一个备忘录吧.
好了,前面扯了那么多,现在我们开始do it!
part1:利用bazel进行编译和开启tensorflow serving。。
首先比较推荐的是使用bazel的方式来使用tensorflow serving,通过该方式你能过更加深入的了解tensorflow serving的运行机制。
利用bazel的方式主要借鉴的是官方的文档,传送门:https://tensorflow.
github.io/serving/setup
1.1bazel的安装
安装的话按照官方的安装方式就好了,楼主主要说两个要注意的点:一个是安装下载的版本,bazel下载的网址:https://github.com/bazelbuild/bazel/releases
这里一定要根据自己的系统下载对应的安装包,然后对安装实例代码进行针对性的修改,如果你点进去的时候你会发现其实还要安装很多依赖的包,传送门:https://docs.bazel.build/versions/master/install.html。按照上面的官方文档一步一步进行吧,心理默默祈祷不要出什么问题,如果出了什么问题就自己针对性的查找解决办法啦。另一个点是环境的配置:export PATH="$PATH:$HOME/bin"。如果少了这句就会经常出现之前还能用bazel怎么后来又不能用啦,这个时候不要第一时间怀疑自己的人品,先加这么一句.