Я пытаюсь возобновить обучение простой NN-архитектуре после ее модификации.Используя набор данных MNIST, в этом примере я обучаю модель 2 эпохам, а затем сохраняю модель в файле .h5
.Затем я перезагружаю модель, изменяю модель и перекомпилирую ее.Но я хочу возобновить обучение именно там, где я его остановил.Поэтому я хотел бы использовать оптимизатор перезагруженной модели, чтобы продолжить обучение.Вот код:
MLP = keras.models.Sequential([
keras.layers.Dense(100, activation='sigmoid', input_shape=(784,)),
keras.layers.Dense(10, activation='softmax')
])
MLP.compile(optimizer=tf.keras.optimizers.Adam(lr=0.5), loss=tf.losses.log_loss, metrics=['accuracy'])
training_output = MLP.fit(x_train, y_train, epochs=2, validation_data=(x_val, y_val), verbose=2, initial_epoch=0)
MLP.save('test.h5')
MLP = keras.models.load_model('test.h5', custom_objects={'log_loss': log_loss})
modelt = MLP
modelt = # update modelt architecture
modelt.compile(optimizer=MLP.optimizer, loss=tf.losses.log_loss, metrics=['accuracy'])
training_output = modelt.fit(x_train, y_train, epochs=4, validation_data=(x_val, y_val), verbose=2, initial_epoch=2)
Проблема в том, что:
Epoch 1/2
- 1s - loss: 1.2690 - acc: 0.2216 - val_loss: 1.3097 - val_acc: 0.2095
Epoch 2/2
- 1s - loss: 1.2859 - acc: 0.2030 - val_loss: 1.2420 - val_acc: 0.1760
Epoch 3/4
- 1s - loss: 2.8945 - acc: 0.0993 - val_loss: 2.9367 - val_acc: 0.0890
Epoch 4/4
- 1s - loss: 2.9035 - acc: 0.0993 - val_loss: 2.9367 - val_acc: 0.0890
Тренировка остается каким-то застрявшим или хуже.Как я могу решить эту проблему?Даже при попытке создать новый объект Adam Optimizer и сбросе всех значений, к которым я могу прикоснуться, поведение не меняется.Как правильно использовать повторно загруженный оптимизатор?
Большое спасибо за помощь!
РЕДАКТИРОВАТЬ: простое сохранение и перезагрузка модели возвращает следующие результаты:
lr begin: 0.15811755
begin: [0.35258077597618104, 0.1265]
lr end: 0.25961164
end: [1.0754492826461792, 0.2785]
-------------------------------------------------------------
lr begin: 0.25961164
begin: [1.0754492826461792, 0.2785]
lr end: 0.34131044
end: [1.5968322057723998, 0.2185]
-------------------------------------------------------------
lr begin: 0.34131044
begin: [1.5968322057723998, 0.2185]
lr end: 0.3903688
end: [2.8819153175354004, 0.106]
-------------------------------------------------------------
lr begin: 0.3903688
begin: [2.8819153175354004, 0.106]
lr end: 0.42264876
end: [2.8819153175354004, 0.106]