Я обучил NN-оценку тензорного потока прогнозировать что-то в Python. И я сохранил модель на своем диске Google через Google colab.
Сегодня я загрузил модель, и это была довольно тяжелая работа. Наконец мне удалось загрузить оценщик, используя метод tf.compat.v2.saved_model.load
и .signature
. похоже WrappedFunction. Это мой код до этого шага.
- код для сохранения
serving_input_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(
tf.feature_column.make_parse_example_spec(input_column))
#tf.feature_column.make_parse_example_spec([input_column]))
export_path = dnn_regressor.export_saved_model('/content/gdrive/My Drive',serving_input_fn)
#https://www.tensorflow.org/guide/saved_model#savedmodel%EC%9D%98_%EC%A0%9C%EC%96%B4_%ED%9D%90%EB%A6%84
код для загрузки
imported = tf.compat.v2.saved_model.load('/content/gdrive/My Drive/1572596260', tags=None)
infer = imported.signatures["predict"]
Но все же мне не удается поместить тестовые данные в модель для прогнозирования.
сначала я попытался:
test_predictions = infer(test_data)
test_predictions = np.array([item['predictions'][0] for item in test_predictions])
И он возвращает ошибку
ValueError: Все входные данные для ConcreteFunction
s должны быть Tensors;при вызове> обрезанного 0-го ввода (Мои данные [2513 строк х 45 столбцов]) не было> Тензор.
Во-вторых, искал какой-то документ тензорного потока, я написал этот код
test_predictions = infer(tf.constant(test_data))
test_predictions = np.array([item['predictions'][0] for item in test_predictions])
На этот раз он возвращает
Аргумент 'examples' (значение Tensor ("Const_10: 0", shape = (2513, 45),> dtype = float64))несовместим с формой, с которой эта функция была прослежена. Ожидаемая форма (?,), Но получившая форму (2513, 45).
Если вы вызвали get_concrete_function, вам может потребоваться передать> tf.TensorSpec (..., shape = ...) сменее конкретная форма, имеющая None на осях> которая может варьироваться.
Я нашел динамическую / статическую форму тензорного потокаНо я не мог полностью понять эту концепцию и не смог изменить. Как я могу получить результат? Спасибо.