通过 RESTful API 部署 Tensorflow 模型的示例 [关闭]

Posted

技术标签:

【中文标题】通过 RESTful API 部署 Tensorflow 模型的示例 [关闭]【英文标题】:Example for Deploying a Tensorflow Model via a RESTful API [closed] 【发布时间】:2016-03-06 08:05:22 【问题描述】:

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

【问题讨论】:

我找到了一个简单的 Flask 示例,并将答案放在底部。这是你要找的东西吗?请告诉我,否则,我将删除答案。顺便说一句,我还没有测试过 TensorFlow Serving 的性能,但 Flask 版本对我来说似乎不错。 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

要快速开始,请查看tutorial。

【讨论】:

以上是关于通过 RESTful API 部署 Tensorflow 模型的示例 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

AgileConfig - RESTful API 介绍

Web Services: MDT 还包括 RESTful API 和 web 页面,便于自定义以及管理部署过程

AWS Elastic beanstalk 部署 http 404 错误后我无法访问我的 JAVA api restful 应用程序

RESTful API

Restful API

RESTful API规范