Как отладить «Cloud ML поддерживает только TF 1.0 или выше и модели сохраняются в формате SavedModel.»? - PullRequest
0 голосов
/ 19 сентября 2018

Я делаю групповые прогнозы, используя Cloud ML.Некоторые из моих моделей работают, а другие нет.Как я отлаживаю модели, которые не работают?Все, что я вижу, это куча ошибок: Cloud ML only supports TF 1.0 or above and models saved in SavedModel format. в prediction.errors_stats-00000-of-00001.Вывод saved_model_cli show --all --dir - это (другие рабочие модели выдают тот же вывод)

MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs:

signature_def['prediction']:
  The given SavedModel SignatureDef contains the following input(s):
    inputs['example_proto'] tensor_info:
    dtype: DT_STRING
    shape: (-1)
    name: input:0
  The given SavedModel SignatureDef contains the following output(s):
    outputs['id'] tensor_info:
    dtype: DT_STRING
    shape: (-1)
    name: id:0
    outputs['probability'] tensor_info:
    dtype: DT_FLOAT
    shape: (-1, 1)
    name: probability:0
  Method name is: tensorflow/serving/predict

signature_def['serving_default']:
  The given SavedModel SignatureDef contains the following input(s):
    inputs['example_proto'] tensor_info:
    dtype: DT_STRING
    shape: (-1)
    name: input:0
  The given SavedModel SignatureDef contains the following output(s):
    outputs['id'] tensor_info:
    dtype: DT_STRING
    shape: (-1)
    name: id:0
    outputs['label'] tensor_info:
    dtype: DT_INT64
    shape: (-1)
    name: label:0
    outputs['probability'] tensor_info:
    dtype: DT_FLOAT
    shape: (-1, 1)
    name: probability:0
  Method name is: tensorflow/serving/predict

ОБНОВЛЕНО: мои данные представлены в виде записей TF, поэтому я не могу сделать gcloud ml-engine local predict.

Ответы [ 3 ]

0 голосов
/ 21 сентября 2018

Оказалось, что проблема была в том, что мои модели были развернуты на четырехъядерном процессоре.Пакетные прогнозы не сработали.Развертывание моделей на одноядерном процессоре устраняет проблему.Кажется, это ошибка, о которой я сообщил.

0 голосов
/ 24 марта 2019

Я получил ту же ошибку, и моя команда была:

gcloud ml-engine local predict --model-dir $MODEL_DIR --json-instances $JSON_INSTANCES --verbosity debug

Проблема в том, что мой $MODEL_DIR указывал на неправильный каталог модели.Убедитесь, что модель в формате SavedModel !

0 голосов
/ 19 сентября 2018

(1) Вы указали --runtime-version при развертывании модели?По умолчанию это 1.0, но, вероятно, вам нужна версия TensorFlow 1.8 или что-то в этом роде.Если ваша модель использует операции, которые были добавлены после 1.0, вы можете получить это сообщение.

(2) Вы можете использовать локальный прогноз gcloud ml-engine даже с записями TF.Предположительно, экспортируемая модель имеет однорядный входной тензор с измерением [Нет], который напрямую передается в операцию ParseExample.В этом случае вы просто следуете стандартному синтаксису API JSON, отправляя партию строк, содержащих сериализованные записи tf.Example (их кодирует base64 и использует синтаксис для их указания):

  {"instances": [{"b64": base64.b64encode(example1), {"b64": base64.b64encode(example2}}, ...]}

Другой (лучший) вариантреэкспортируйте его (не нужно переобучаться, вы всегда можете экспортировать из контрольных точек или SavedModel, написав скрипт с несколькими строками для загрузки модели и экспорта новой) и вместо использования build_parsing_transforming_serving_input_receiver_fn используйте build_default_transforming_serving_input_receiver_fn,Тогда ваш JSON прост:

{"instances": [{"input_name": [10,3,5,6]}]} 

Если у вас есть только один вход, вы можете упростить его до:

{"instances": [[10,3,5,6]]} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...