首页 > 解决方案 > tensorflow-serving batching_config.txt中的“max_batch_size”是什么意思?

问题描述

我在 GPU 上使用 tensorflow-serving 和--enable-batching=true.

但是,我对max_batch_sizein有点困惑batching_config.txt

[-1, 1000]我的客户端在单个 gRPC 请求中发送具有张量形状的输入张量,dim0 范围从(0, 200]. 我设置max_batch_size = 100并收到错误:

“gRPC 调用返回码:3:任务大小 158 大于最大批量大小 100”

“gRPC 调用返回码:3:任务大小 162 大于最大批量大小 100”

貌似max_batch_size限制了单个请求的dim0,但是tensorflow将多个请​​求分批处理,我以为是请求数的总和。

标签: gputensorflow-serving

解决方案


这是来自文档的直接描述。

max_batch_size:任何批次的最大大小。这个参数控制吞吐量/延迟的权衡,并且还避免了批次太大以至于超出了某些资源限制(例如,GPU 内存来保存批次的数据)。

在 ML 中,大多数时候第一个维度代表一个批次。因此,根据我的理解,张量流服务将第一个维度的值作为一个批次混淆,并在它大于允许值时发出错误。您可以通过发出一些手动控制第一个维度低于 100 的请求来验证它。我希望这可以消除错误。

之后,您可以修改输入以正确格式发送。


推荐阅读