Я пытаюсь сохранить и загрузить мою модель keras. Он тренируется, оценивает и сохраняет нормально (используя .h5 для сохранения модели), но когда я пытаюсь загрузить модель, я получаю следующую ошибку:
ValueError: Ввод 0 несовместим с выравниванием слоя: ожидаемый min_ndim = 3, найденный ndim = 2.
Я загружаю модель неправильно? Любая помощь будет оценена!
Это блок кода, из которого я сохраняю модель.
def ml(self):
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten())
self.addLayer(model,145,6)
model.add(tf.keras.layers.Dense(1))
optimizer = tf.keras.optimizers.Adam()
model.compile(loss='mean_squared_error',
optimizer=optimizer,
metrics=['mean_absolute_error',
'mean_squared_error'])
model.fit(self.x_train, self.y_train,epochs=130)
lm = model.evaluate(self.x_test, self.y_test, batch_size=300)
model.save('my_model.h5')
def addLayer(self, model, numNodes, numLayers):
for i in range(numLayers):
model.add(tf.keras.layers.Dense(numNodes,activation=tf.nn.relu))
Чтобы загрузить из другого скрипта:
import keras
from keras.models import load_model
from keras.utils import CustomObjectScope
from keras.initializers import glorot_uniform
with CustomObjectScope({'GlorotUniform': glorot_uniform()}):
model = load_model(mlPath)
При попытке загрузить модель я получаю следующую ошибку:
ValueError: вход 0 несовместим со сглаживанием слоя: ожидаемый min_ndim = 3, найденный ndim = 2