24

是否有通过 RESTful API 部署 Tensorflow 模型的示例代码?我看到了命令行程序和移动应用程序的示例。是否有用于此的框架,或者人们只是加载模型并通过 Web 框架(如 Flask)公开预测方法以获取输入(例如通过 JSON)并返回响应?我所说的框架是指针对大量预测请求进行扩展。当然,由于模型是不可变的,我们可以启动预测服务器的多个实例并将其放在负载均衡器(如 HAProxy)后面。我的问题是,人们是否为此使用了一些框架或从头开始执行此操作,或者,这可能已经在 Tensorflow 中可用,而我没有注意到它。

4

2 回答 2

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足够快。

于 2016-04-24T05:18:18.450 回答
19

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

在此处输入图像描述

要快速入门,请查看教程

于 2016-02-16T18:31:33.163 回答