我希望部署一个Tensorflow模型,以便可以使用RESTful API访问它以进行推理。
Tensorflow Serving看起来像是这项工作的理想工具。我现在使用Tensorflow服务运行一些MWE。我的模特也在工作。
用户将通过Flask网站访问该模型,并通过该网站上传数据。 Flask网站会将数据发送到模型容器,并返回结果。
但是,对于我的用例,该模型每月最多访问几次,延迟并不是一个大问题。让模型在云服务器上24/7运行会造成很大的资源浪费。
是否有任何工具,工作流程或指南可以让用户通过Web界面部署模型然后关闭?他们愿意等待一个实例的旋转。
我是云服务不可知的,甚至没有与Tensorflow服务系统结婚。 This question提出了类似的担忧,但没有回答。
谢谢
您可以对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模块导入到烧瓶应用程序中。这样,当您进行预测时,您将与您的烧瓶应用程序共享资源。