2017-04-09 35 views
-1

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

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

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

+0

http://flask.pocoo.org/ – davidism

回答

0

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

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

正如您在教程中看到的那样,您通过定义处理不同路线的特殊功能来创建HTTP服务器的功能。简而言之,路由是一种特殊类型的查询(因此,在该函数中处理此类型的查询 - 这种类型的查询)。

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

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

+0

谢谢你的评论,它有点给了我一些提示。我在这里发现了一些非常有趣的内容:https://tensorflow.github.io/serving/serving_inception。现在我相信这是一种创建支持tensorflow的API的方法。你能否快速阅读其中的内容,并告诉我他们称之为“Kubernetes服务”的最终结果是API? – sniper71

+0

Docker?不幸的是,不熟悉它。无法分辨。 –

+0

我设法通过使用MLDB(机器学习数据库)来完成这项工作,该机器学习数据库是在功能内嵌入RESTful调用的框架。 – sniper71