临时Tensorflow模型部署

时间:2018-11-25 13:48:11

标签: docker tensorflow deployment cloud devops

我正在寻找一个Tensorflow模型,以便可以使用RESTful API对其进行推理。

Tensorflow Serving看起来像是完成这项工作的理想工具。我现在使用Tensorflow Serving运行了一些MWE。我也有模型在工作。

用户将通过Flask网站访问模型,并通过该网站上传数据。 Flask网站会将数据发送到模型容器,然后返回结果。

但是,对于我的用例,该模型每月最多只能访问两次,而延迟并不是一个大问题。使模型在24/7的云服务器上运行会浪费大量资源。

是否存在任何工具,工作流程或指南,这些工具,工作流程或指南将允许模型被部署然后由用户通过Web界面关闭?他们愿意等待时间启动实例。

我与云服务无关,甚至还没有嫁给Tensorflow Serving系统。 This question提出了类似的问题,但未得到答复。

谢谢

1 个答案:

答案 0 :(得分:1)

您可以在flask应用程序中进行预测,而不必将数据发送到tensorflow服务服务器进行预测。

这是一个基本示例:

@app.route('/predict/', methods=['GET','POST'])
def predict():
    # get data from drawing canvas and save as image
    data = parseData(request.get_data())

    graph = tf.get_default_graph()
    with graph.as_default():
        out = model.predict(x)
        response = np.array_str(np.argmax(out, axis=1))
        return response 

我们还为打包模型www.github.com/bentoml/bentoml构建了一个用于打包模型的开源工具包。使用我们的工具包,您可以将模型导出到文件档案中,并将其作为python模块导入烧瓶应用中。这样,您可以在进行预测时与flask应用共享资源。