gpu - tensorflow-serving batching_config.txt中的“max_batch_size”是什么意思?
问题描述
我在 GPU 上使用 tensorflow-serving 和--enable-batching=true
.
但是,我对max_batch_size
in有点困惑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将多个请求分批处理,我以为是请求数的总和。
解决方案
这是来自文档的直接描述。
max_batch_size:任何批次的最大大小。这个参数控制吞吐量/延迟的权衡,并且还避免了批次太大以至于超出了某些资源限制(例如,GPU 内存来保存批次的数据)。
在 ML 中,大多数时候第一个维度代表一个批次。因此,根据我的理解,张量流服务将第一个维度的值作为一个批次混淆,并在它大于允许值时发出错误。您可以通过发出一些手动控制第一个维度低于 100 的请求来验证它。我希望这可以消除错误。
之后,您可以修改输入以正确格式发送。