【发布时间】:2017-06-06 03:23:18
【问题描述】:
我有一个小型 Web 服务器,它获取句子输入,需要使用 Tensorflow Serving 返回模型预测。使用我们的单个 GPU 运行良好且运行良好,但现在我想启用批处理,以便 Tensorflow Serving 等待一段时间将传入的句子分组,然后在 GPU 上将它们一起处理。
我正在使用 predesigned server framework 和 predesigned batching framework,使用 Tensorflow Serving 的初始版本。我正在使用--batching 标志启用批处理,并设置了batch_timeout_micros = 10000 和max_batch_size = 1000。日志记录确实确认启用了批处理并且正在使用 GPU。
但是,当向服务服务器发送请求时,批处理的影响很小。同时发送 50 个请求在发送 5 个请求的时间使用方面几乎呈线性比例变化。有趣的是,服务器的predict() 函数为每个请求运行一次(参见here),这表明批处理没有得到正确处理。
我错过了什么吗?如何检查批处理出了什么问题?
请注意,这与 How to do batching in Tensorflow Serving? 不同,因为该问题仅检查如何从单个客户端发送多个请求,而不是如何为多个单独的请求启用 Tensorflow Serving 的幕后批处理。
【问题讨论】:
标签: tensorflow gpu tensorflow-serving