Как понять параллелизм запросов со стороны клиента по gRP C в примере TF-Serving? - PullRequest
0 голосов
/ 13 февраля 2020

Фон

Согласно Обслуживание модели TensorFlow ,

Программа в Mnist клиент составляет около

Клиент, который обращается к tenorflow_model_server, загруженному с моделью mnist.

Клиент загружает тестовые образы набора данных mnist, запрашивает у сервиса

такие тестовые изображения, чтобы получить прогнозы и вычисляет частоту ошибок логического вывода.

Проблема

У меня есть некоторые трудности с пониманием параллелизма запросов со стороны клиента по gRP C.

  1. Определить параллелизм

  2. Код, связанный с параллелизмом

  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))

Исходя из моего понимания, приведенный выше код выполняется последовательно в течение l oop. Я прочитал сообщения об условной переменной, блокировка в Python. Поскольку я даже не вижу нескольких потоков, определенных для отправки запроса, я не думаю, что код связан с параллелизмом, даже если я установил флаг, например, 10. ( Определить параллелизм )

Я могу не заметить gRP C, если у меня возникло какое-то недопонимание.

Если код не является реальным параллелизмом, как его исправить?

1 Ответ

0 голосов
/ 19 февраля 2020

gRP C Python использует фоновый поток для опроса сообщений с более низкого уровня. Для одновременного запуска RP C вы можете создать несколько фьючерсов RP C в своем потоке. Когда любой RP C закончен (результат собран фоновым потоком), тогда будет вызван ваш обратный вызов.

https://github.com/grpc/grpc/blob/0b4a9d6ba0a60a1982d81da6bb6b730a5c443c44/src/python/grpcio/grpc/_channel.py#L1126

Надеюсь, это поможет, почувствуйте можете запросить более подробную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...