【问题标题】:How to create a python api?如何创建一个python api?
【发布时间】:2017-09-04 17:52:40
【问题描述】:

我是一名计算机视觉专业的学生,​​我面临着一项超出专业领域的任务。我的任务是创建一个将图像 url 作为输入的 api,它可以预测图像中的食物类型。 我使用 tensorflow 和 inception 对我的数据进行分类。我现在有一个 python 脚本,它需要一个 url,基本上它会下载图像,将其发送到分类器,然后我在 ubuntu 的终端窗口上得到预测。 现在,对于分类,正如我所说,我使用 tensorflow 和 inception,我现在在我的脚本文件夹中有一个图形文件(graph.pb),这个文件包含进行分类(权重)的网络,它超过 80Mb尺寸。 所以到目前为止我所能做的就是在终端中使用我的脚本并给它一个图像 url,它会给我预测。我想把它变成一个 api,以便有人可以使用它来预测图像包含哪种类型的食物。我不知道如何编码和 API,但我可以学习。我只想用最简单的方法在短时间内编写代码,理想情况下我会使用 python 编写代码,如果没有,请告诉我其他相对简单的选项。

总而言之,我想使用 python 编写一个 api,它获取一个图像 url,并使用 graph.pb 文件中的权重预测该图像包含的食物类型。

非常感谢任何指导方针。 谢谢

【问题讨论】:

    标签: python-2.7 api tensorflow classification ubuntu-16.04


    【解决方案1】:

    我认为您需要 HTTP API。这意味着用户必须发出一个 HTTP 请求(可能来自浏览器)并在请求参数中指定输入数据,然后他将获得带有输出数据的响应。

    要创建 HTTP API,您需要一个 HTTP 服务器。创建一个的方法之一是 Flask 微框架 (Flask tutorial)。

    正如您在本教程中所见,您正在通过定义处理不同路由的特殊函数来创建 HTTP 服务器的功能。简单地说,route 是一种特定类型的查询(所以这种类型的查询在这个函数中处理,那个类型的 - 在那个函数中)。

    我可以想象你的 HTTP 服务器的代码是这样的:有一个路由处理函数在做这件事。它从请求中收集输入数据,然后使用您已经实现的功能(通过调用函数或执行某些命令,这取决于您的程序的工作方式),获取其输出并将其作为对请求的响应返回。

    完成 HTTP 服务器后,您需要将它(连同识别器部分)部署在可公开访问(我的意思是每个人都可以向它发出请求)始终在线的服务器上(VDS 会这样做)。您的 API 将可以通过服务器 API 访问,如果您创建了一个域名,则可以通过域名访问。

    【讨论】:

    • 感谢您的评论,它给了我一些提示。我在这里发现了一些非常有趣的东西:tensorflow.github.io/serving/serving_inception。现在我相信这是一种创建 tensorflow 支持的 API 的方法。您能否快速阅读其中的内容并告诉我他们称之为“Kubernetes 中的服务”的最终结果是否是 API?
    • 泊坞窗?不熟悉,可惜了。说不出来。
    • 我设法通过使用 MLDB(机器学习数据库)来完成这项工作,这是一个在函数中嵌入 RESTful 调用的框架。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2012-06-16
    • 2015-10-12
    • 2014-09-06
    相关资源
    最近更新 更多