#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()
. Надеюсь, это поможет