Я обучил модель с несколькими слоями, чем для каждого слоя в наборе model.layers
layer.trainable = False
Я добавил несколько слоев к этой модели под названием
model.compile(...)
И обучил эту новую модель нескольким эпохам с замороженной частью слоев.
Позже я решил разморозить слои и побежал
for layer in model.layers:
layer.trainable = True
model.compile(...)
Когда я начинаю изучать модель с незамерзшими слоями, я получаю очень большое значение функции потерь, хотя я просто хотел продолжить обучение с ранее изученными весами. Я также проверил, что после model.compile(...)
модель все еще хорошо прогнозирует (не сбрасывая ранее изученные веса), но как только начинается процесс обучения, все «стирается», и я начинаю как с нуля.
Может ли кто-нибудь уточнить, нормально ли это поведение? Как перекомпилировать модель и не начинать с нуля?
P.S. Я также попросил вручную сохранить веса и присвоить их вновь скомпилированной модели, используя layer.get_weights()
и layer.set_weights()
Я использовал те же параметры компиляции (похожие optimizer
и похожие loss
)