通过RESTful API部署Tensorflow模型的示例

时间:2015-12-02 06:58:39

标签: tensorflow tensorflow-serving

是否有通过RESTful API部署Tensorflow模型的示例代码?我看到了命令行程序和移动应用程序的示例。是否有一个框架,人们只需加载模型并通过Web框架(如Flask)公开预测方法来获取输入(比如通过JSON)并返回响应?通过框架,我的意思是扩展大量的预测请求。当然,由于模型是不可变的,我们可以启动预测服务器的多个实例并将其置于负载均衡器(如HAProxy)之后。我的问题是,人们是否正在使用某种框架或从头开始这样做,或者,这可能已经在Tensorflow中提供,我还没有注意到它。

2 个答案:

答案 0 :(得分:23)

https://github.com/sugyan/tensorflow-mnist通过使用Flask和加载预训练模式(恢复)显示了一个简单的restAPI示例。

@app.route('/api/mnist', methods=['POST'])
def mnist():
    input = ((255 - np.array(request.json, dtype=np.uint8)) / 255.0).reshape(1, 784)
    output1 = simple(input)
    output2 = convolutional(input)
    return jsonify(results=[output1, output2])

另请参阅https://tensorflow-mnist.herokuapp.com/的在线演示。似乎API足够快。

答案 1 :(得分:19)

TensorFlow Serving是一款用于机器学习模型的高性能开源服务系统,专为生产环境而设计,并针对TensorFlow进行了优化。初始版本包含使用gRPC构建的示例,但您可以使用RESTful API轻松替换前端(在下图中表示为“client”)以满足您的需求。

enter image description here

要快速入门,请查看tutorial