2015-12-02 146 views
18

是否有通過RESTful API部署Tensorflow模型的示例代碼?我看到了命令行程序和移動應用程序的示例。有沒有這樣的框架,或者人們只是通過Web框架(如Flask)加載模型並展示預測方法來接受輸入(例如通過JSON)並返回響應?我所說的框架是指對大量的預測請求進行縮放。當然,由於模型是不可變的,我們可以啓動預測服務器的多個實例,並將其放在負載平衡器(如HAProxy)之後。我的問題是,人們是使用一些框架來做這件事還是從頭開始,或者,這在Tensorflow中已經可用,我沒有注意到它。通過RESTful API部署Tensorflow模型的示例

+0

我找到了一個簡單的Flask示例,並將答案放在底部。這是你正在尋找的東西嗎?請讓我知道否則,我會刪除答案。 順便說一下,我還沒有測試與TensorFlow服務的性能,但Flask版本似乎對我來說體面。 –

回答

17

TensorFlow Serving是一款面向機器學習模型的高性能開源服務系統,專爲生產環境而設計,並針對TensorFlow進行了優化。最初版本包含使用gRPC構建的示例,但您可以使用RESTful API輕鬆替換前端(在下圖中表示爲「客戶端」)以滿足您的需求。

enter image description here

爲了快速上手,檢查出tutorial

22

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