В настоящее время я разрабатываю и тестирую RNN, которая использует для обучения большой объем данных, поэтому попыталась разделить файлы обучения и тестирования. У меня есть один файл, в котором я создаю, обучаю и сохраняю модель tensorflow.keras в файл model.keras. Затем я загружаю эту модель в другой файл и прогнозирую некоторые значения, но получаю следующее ошибка:
Failed to convert elements of {'class_name': '__tensor__', 'config': {'dtype': 'float64', 'value': [0.0, 0.0, 0.0, 0.0]}} to Tensor. Consider casting elements to a supported type. See https://www.tensorflow.org/api_docs/python/tf/dtypes for supported TF dtypes
Кстати, я попробовал запустить model.predict с теми же данными в файле, где я обучаю модель, и все работает гладко. Проблема должна заключаться в загрузке модели, а не в данных, используемых для прогнозирования.
Этот загадочный тензор float64 — это значение, которое я передал в маскирующий слой. Я не понимаю, почему keras не может распознать этот объект JSON как тензор и применить операцию маскировки как таковую. Ниже я включил фрагменты своего кода, отредактированные для ясности и краткости:
model_generation.py:
# Create model
model = tf.keras.Sequential([
tf.keras.layers.Input((352, 4)),
tf.keras.layers.Masking(mask_value=tf.convert_to_tensor(np.array([0.0, 0.0, 0.0, 0.0]))),
tf.keras.layers.GRU(50, return_sequences=True, activation='tanh'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.GRU(50,activation='tanh'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(units=1, activation='sigmoid')])
# Compile Model...
# Train Model...
model.save('model.keras')
model.predict(data) # Line works here
model_testing.py
model = tf.keras.models.load_model('model.keras')
model.predict(data) # this line generates the error
Подробнее здесь: https://stackoverflow.com/questions/793 ... th-masking
Загруженная модель Keras выдает ошибку при прогнозировании (вероятные проблемы с маскированием) ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение