Ошибка онлайн-прогнозирования Google Cloud ML-Engine: ввод значения для тензора-заполнителя, который уже включен

#python #tensorflow #google-cloud-platform #tensorflow-serving #google-cloud-ml

#python #tensorflow #google-cloud-platform #tensorflow-обслуживание #google-cloud-ml

Вопрос:

Я уже несколько дней сталкиваюсь со следующей ошибкой и до сих пор не могу найти решение:

InvalidArgumentError (см. Выше для обратной трассировки): вы должны ввести значение для тензора-заполнителя ‘decoder_input’ с помощью dtype float и shape [?,?,1]

[[node decoder_input (определено в /Users/me/Downloads/google-cloud-sdk/lib/third_party/ml_sdk/cloud/ml/prediction/frameworks/tf_prediction_lib.py:210 ) ]]

(Код ошибки: 2)

Я обучил свой tf.keras.Model (Python 3.6, Tensorflow 1.13.1) и успешно экспортировал его в Google Cloud ML-engine.

Запустив saved_model_cli show --all --dir=trainer/predict-dir/1552642125 , я получаю:

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

signature_def['serving_default']:
  The given SavedModel SignatureDef contains the following input(s):
    inputs['decoder_input'] tensor_info:
        dtype: DT_FLOAT
        shape: (-1, -1, 1)
        name: decoder_input_1:0
    inputs['encoder_input'] tensor_info:
        dtype: DT_FLOAT
        shape: (-1, -1, 1)
        name: encoder_input_1:0
  The given SavedModel SignatureDef contains the following output(s):
    outputs['reg_sequence_prediction'] tensor_info:
        dtype: DT_FLOAT
        shape: (-1, -1, 1)
        name: reg_sequence_prediction/BiasAdd:0
  Method name is: tensorflow/serving/predict
  

Мой instances.json файл:

{"decoder_input": [[0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0], [0.0]], "encoder_input": [[-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672], [-1.1672]]}

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

Я не включал ни уровни отсева, ни уровни регуляризации, модель представляет собой простую модель seq2seq keras с RNNs и GRUCells.

Заранее благодарим вас за помощь.

Комментарии:

1. Решается с помощью tf.estimator.export.build_raw_serving_input_receiver_fn() , а не tf.estimator.export.ServingInputReceiver() . Надеюсь, это поможет