我有一個小型Web服務器,它根據句子獲取輸入,並需要使用Tensorflow服務返回模型預測。它使用我們的單GPU能夠很好地工作,但是現在我希望啓用批處理,以便Tensorflow Serving在GPU上一次處理它們之前等待輸入的句子。在Tensorflow服務中調試批處理(沒有觀察到效果)
我使用predesigned server framework與predesigned batching framework使用Tensorflow服務的初始版本。我使用--batching
標誌啓用批處理,並設置了batch_timeout_micros = 10000
和max_batch_size = 1000
。日誌記錄確認批處理已啓用並且正在使用GPU。
但是,向服務器發送請求時,批處理的影響很小。在發送5個請求的同時,發送50個請求的時間幾乎是線性的。有趣的是,服務器的predict()
函數針對每個請求運行一次(請參閱here),這表明批處理沒有得到正確處理。
我錯過了什麼嗎?如何檢查批次的問題?
注意,這是從How to do batching in Tensorflow Serving?不同,因爲這個問題只檢查如何從一個客戶端發送多個請求,而不是如何讓Tensorflow服務的幕後的配料爲多個獨立的請求。