Я построил модель TensorFlow на Sagemaker, и она отлично работает с выводом в реальном времени, однако я хочу использовать функцию пакетного преобразования, и я начал искать входные данные. Я начал отлаживать свою модель локально с помощью save_model_cli:
saved_model_cli show \
--dir . \
--tag_set serve \
--signature_def serving_default
The given SavedModel SignatureDef contains the following input(s):
inputs['inputs'] tensor_info:
dtype: DT_FLOAT
shape: (-1, 50, 11)
name: lstm_input:0
The given SavedModel SignatureDef contains the following output(s):
outputs['dense/BiasAdd:0'] tensor_info:
dtype: DT_FLOAT
shape: (-1, 1)
name: dense/BiasAdd:0
Method name is: tensorflow/serving/predict
Я предполагаю, что мои входные данные называются inputs
, как указано выше, однако, когда я запускаю следующий код, я получаю ошибку
saved_model_cli run \
--dir . \
--tag_set serve \
--signature_def predict \
--input_examples 'inputs=[{"":[1.2]}]'
ValueError: «input» не является допустимым ключом ввода. Пожалуйста, выберите "" или используйте опцию --show.
Я пытался предоставить файл npy (--inputs inputs=batch_transform.npy
), различные представления данных, но всегда с одной и той же ошибкой.
Моя модель сохраняется со следующим кодом:
tf.saved_model.simple_save(
tf.keras.backend.get_session(),
os.path.join(model_dir, 'model/1'),
inputs={'inputs': model.input},
outputs={t.name: t for t in model.outputs})
Я пробовал версии TF 1.12 и 1.14, но результат тот же.
Любой совет?