Как создать один PredictRequest () с несколькими model_spec? - PullRequest
5 голосов
/ 09 мая 2019

Я пытаюсь добавить несколько model_spec и их соответствующие входные данные в один predict_pb2.PredictRequest() следующим образом:

tmp = predict_pb2.PredictRequest()

tmp.model_spec.name = '1'
tmp.inputs['tokens'].CopyFrom(make_tensor_proto([1,2,3]))


tmp.model_spec.name = '2'
tmp.inputs['tokens'].CopyFrom(make_tensor_proto([4,5,6]))

Но я только получаю информацию 2:

>> tmp

model_spec {
  name: "2"
}
inputs {
  key: "tokens"
  value {
    dtype: DT_INT32
    tensor_shape {
      dim {
        size: 3
      }
    }
    tensor_content: "\004\000\000\000\005\000\000\000\006\000\000\000"
  }
}

Как я могу получить один PredictRequest () для нескольких моделей с соответствующими входами?

Моя цель состоит в том, чтобы создать один запрос и отправить его в службу tenorflow, обслуживающую две модели. Есть ли другой способ обойти это? Создание двух отдельных запросов для обеих моделей и получение результатов от tf_serving один за другим работает, но мне интересно, могу ли я просто объединить два запроса в один.

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Вы пытались использовать файл конфигурации.

Содержимое файла конфигурации может быть таким, как показано ниже:

model_config_list {
  config {
    name: 'my_first_model'
    base_path: '/tmp/my_first_model/'
  }
  config {
    name: 'my_second_model'
    base_path: '/tmp/my_second_model/'
  }
}

Для получения дополнительной информации вы можете обратиться по ссылке, показанной ниже:

https://www.tensorflow.org/tfx/serving/serving_config

0 голосов
/ 14 мая 2019

Боюсь, это невозможно. В tenorflow_serving / api /gnett.proto каждый PredictRequest имеет только один ModelSpec. Вы можете попробовать добавить код для этого.

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