美文网首页TensorFlow我爱编程
TensorFlow Serving (0)

TensorFlow Serving (0)

作者: 斐波那契的数字 | 来源:发表于2017-11-11 21:49 被阅读197次

    Tensorflow Serving是一种将TensorFlow制作好的模型 用于应用的服务的工具。TensorflowServing是为训练好的模型提供对外rpc调用的接口服务器,它能够检测模型的最新版本并自动加载,使得模型到生产环境的部署更为便利。不得不说这个是一个非常好的工具,既免去了模型服务化的开发工作,又保证了迭代训练的模型能够快速上线。记得本博主去年还专门做过一段时间caffe模型的服务化,封装人脸识别和物体识别的http接口,一开始写起来还是挺麻烦的。最近团队内部NLP的模型训练切换到了Tensorflow,于是乎便简单体验了一下Tensorflow Serving,这里做个简单的总结。

    假装贴一个图  :)

    1.如何制作Tesor Serving的应用?

    基本分为两部分,

    第一步:训练模型,并且导出(export)产生pb( protocol buffer )格式的文件。

    第二步:使用gRPC服务讯早导出的模型并为模型开启服务。

    如图1所示。

    图1构建Tensor Serving

    详情参见:Building Standard TensorFlow ModelServer

    2. Tensor Serving需要什么形式的模型才能使用?

    Serving导出的模型文件格式是*.pb这种文件以二进制的形式保存模型每个节点的值。

    3.  Tensorflow的导出和保存有区别么?

    有的。

    1.首先:两者操作后产生的文件不同(save操作的问件事ckp系列,export是pb,protocol buffer文件)。

    2.其次,操作的目的不同: 保存(save)模型的目的是:防止在训练过程中突然断电导致训的参数据丢失。而不是用于Serving。

    参见:tf.train.Saver

    导出(export)模型的目的是:为了让RCP服务使用。

    参见:tf.saved_model.builder.SavedModelBuilder

    4.使用tensorflow训练好的模型保存下来以后,是否可以直接用在tensor Serving上?

    回答:能。

    经过Tesnsorflow的tf.train.save()保存下当前模型的权重,同时会产生三种文件:

    model.ckpt-412506.data-00000-of-00001#这个文件保存下来的是数据

    model.ckpt-412506.index#保存下来索引

    model.ckpt-412506.meta#

    这些文件是不能够直接用在Serving上的,需要转换成pb。方法也很简单:

    把恢复原有的模型,然后使用tf.saved_model.builder.SavedModelBuilder导出。

    在网上也找到了另一种实现方式tf_serving中各模型到saved_model的转换

    2、Basic Serving Tutorial

    basic tutorial:学习如何导出一个训练的tensorflow模型,并且建立一个服务器来服务导出模型。

    3、Advanced Serving Tutorial

    advanced tutorial:学习如何建立一个服务器,自动地发现并服务训练模型的新版本。

    4、Serving Inception Model Tutorial

    serving inception tutorial:学习如何使用TensorFlow Serving and Kubernetes来服务inception模型。

    ۢ7t����`[�/

    相关文章

      网友评论

        本文标题:TensorFlow Serving (0)

        本文链接:https://www.haomeiwen.com/subject/hvpgmxtx.html