【发布时间】:2020-02-13 04:32:32
【问题描述】:
背景
mnist client中的节目是关于
与加载了 mnist 模型的 tensorflow_model_server 对话的客户端。
客户端下载mnist数据集的测试图片,查询服务
这样的测试图像得到预测,并计算推理错误率。
问题
我在理解 gRPC 客户端请求的并发性方面有些困难。
for _ in range(num_tests): # <==
request = predict_pb2.PredictRequest()
request.model_spec.name = 'mnist'
request.model_spec.signature_name = 'predict_images'
image, label = test_data_set.next_batch(1)
request.inputs['images'].CopyFrom(
tf.make_tensor_proto(image[0], shape=[1, image[0].size]))
result_counter.throttle() # <==
result_future = stub.Predict.future(request, 5.0) # 5 seconds
result_future.add_done_callback(
_create_rpc_callback(label[0], result_counter))
根据我的理解,上面的代码是在for循环中顺序执行的。 我已经阅读了有关条件变量、Python 锁定的帖子。由于我什至没有看到定义多个线程来发送请求,因此即使我将标志设置为例如 10,我也不认为代码与并发相关。(Define concurrency)
如果我有一些误解,我可能会忽略 gRPC。
如果代码不是真正的并发,怎么弄对?
【问题讨论】:
标签: multithreading tensorflow grpc tensorflow-serving condition-variable