2017-04-09 55 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