关于TF服务客户端中性能优化的混乱



我在tf服务端示例之后写了我的客户端https://github.com/tensorflow/serving/blob/master/tensorflow_serving/example/inectempample/inepper_client.py.py

和单人预测的成本将近600-700ms,之后我找到了一个博客。https://towardsdatascience.com/tensorflow-serving-client-make-it-slimmer-and-slimmer-and-faster-b3e5f71208fb,通过这样做的预测成本降至20ms,但我所做的只是替换tf.contrib.utilil.utilililililililililililililililililililililililililililililililililililililililililililililililililililil-contrib contrib contrib.make_tensor_proto to

dims = [tensor_shape_pb2.TensorShapeProto.Dim(size=1)]
tensor_shape_proto = tensor_shape_pb2.TensorShapeProto(dim=dims)
tensor_proto = tensor_pb2.TensorProto(
    dtype=types_pb2.DT_FLOAT,
    tensor_shape=tensor_shape_proto) 
for vector in vectors:
    for vector_item in vector:
        tensor_proto.float_val.append(vector_item)
request.inputs['vectors'].CopyFrom(tensor_proto)

我只是直接导入关联的模块:

from tensorflow.core.framework import tensor_pb2
from tensorflow.core.framework import tensor_shape_pb2
from tensorflow.core.framework import types_pb2

我不知道,为什么这比示例代码更快,我什至将make_tensor_proto sphand代码复制到我的代码中,并且它仍然像上面一样快得多。它们执行相同的代码,什么使结果如此不同?

感谢您的任何帮助

通过替换该代码段,您可以从客户端程序中删除张量依赖性。这应该是您看到推理时间如此下降的主要原因。

最新更新