首页 > 解决方案 > tensorFlow服务批处理配置无效

问题描述

码头工人运行命令

docker run -t --rm -p 8500:8500 -p 8501:8501 
-v /home/zhi.wang/tensorflow-serving/model:/models 
-e MODEL_NAME=beidian_cart_ctr_wdl_model tensorflow/serving:1.12.0 
--enable_batching=true --batching_parameters_file=/models/batching_parameters.txt &

批处理参数.txt

num_batch_threads { value: 40 }
batch_timeout_micros { value: 5000}
max_batch_size {value: 20000000}

服务器配置

40 CPU和64G内存

测试结果

1 线程预测成本 30ms
40 线程预测 1 预测成本 300ms

CPU使用率

docker 中的 cpu 使用率只能达到 300% 并且主机 cpu 使用率很低

java测试脚本

TensorProto.Builder tensor = TensorProto.newBuilder();

tensor.setTensorShape(shapeProto);

tensor.setDtype(DataType.DT_STRING);
// batch set 200 
for (int i=0; i<200; i++) {
    tensor.addStringVal(example.toByteString());
}

标签: tensorflow-serving

解决方案


我也面临同样的问题,我发现这可能是网络 io 问题,你可以使用 dstat 来监控你的网络接口。

我找到 example.toByteString() 也花费了很多时间


推荐阅读