Я строю свою модель:
model = Sequential()
...
model.fit(..) #with train data
model.save(..) #and save it
Затем я модель.evaluate (), все хорошо. Затем я хочу переобучить его большим количеством данных, и я:
model = keras.models.load_model(name) #load it
model.summary()
model.save("1_" + name) #this is just to test it, and it doesn't work
При переобучении .fit () работает, но я не могу смоделировать. Сохранить, я получаю ошибку: Вход 0 слоя conv2d_1 несовместим со слоем: ожидаемый ndim = 4, найденный ndim = 5. Получена полная форма
Сводка модели:
Слой (тип) Форма выхода Параметр # Подключен к
time_distributed_1_input (Input [(None, 5, 240) , 426, 0
time_distributed_1 (TimeDistrib (None, 5, 128) 522400 time_distributed_1_input [0] [0]
input_1 (InputLayer) [(None, 7, 81)] 0
gru_1 (GRU) (нет, 64) 37056 time_distributed_1 [0] [0]
conv1d_1 (Conv1D) (нет, 3, 64) 25984 input_1 [0] [0]
плотность_2 (Плотный) (нет, 128) 8320 gru_1 [0] [0]
dropout_1 (выпадение) (нет, 3, 64) 0 conv1d_1 [0] [0]
dropout_2 (Dropout) (нет, 128) 0 density_2 [0] [0]
flatten_1 (Flatten ) (Нет, 192) 0 dropout_1 [0] [0]
плотность_3 (Плотный) (Нет, 64) 8256 dropout_2 [0] [0]
плотность_1 (Плотный) (Нет, 32) 6176 flatten_1 [0] [0]
dens_4 (Плотный) (Нет, 32) 2080 dens_3 [0] [0]
concaten ate_1 (сцепленный) (нет, 64) 0 плотность_1 [0] [0]
плотность_4 [0] [0]
плотность_5 (плотный) (нет, 32) 2080 конкатенация_1 [0] [0]
плотность_6 (плотный) (нет, 16) 528 плотность_5 [0] [0]
плотный_7 (плотный) (нет, 8) 136 плотность_6 [ 0] [0]
Где я не прав? Я могу поставить полный код модели, но ради простоты я этого не сделал. Модель работает, я могу ее обучить, я могу оценить, я даже могу переобучить ее, но я не могу сохранить ее снова после загрузки.