Как вернуть модель keras к весам предыдущих эпох после обновления train_on_batch nan - PullRequest
0 голосов
/ 25 февраля 2019

У меня возникают проблемы с сбросом моей модели keras до весов, которые она имела в предыдущей эпохе после того, как я установил обновление train_on_batch, которое делает некоторые из весов nans.

Я пытался сохранить весы моделей послекаждый шаг тренировки, а затем загружать «хорошие» (не-нано) веса обратно в модель керас после обновления нана-тренировки.Кажется, это работает нормально - когда я печатаю результат model.get_weights () после загрузки старого файла весов в модель, результирующие веса не содержат nans (и прогнозирование их использования также дает вывод, отличный от nan).

Однако теперь, когда я снова пытаюсь тренировать train_on_batch, на этот раз, используя новую партию, я немедленно получаю обновление nan.Я пробовал с несколькими случайно выбранными партиями, и каждый раз происходит обновление nan.

Есть ли что-то (может быть, параметр), который изменяется в модели или конфигурации оптимизатора, когда происходит обновление nan train_on_batch, которое необходимо сбросить для продолжения обучения после того, как я изменил веса?

Я также хотел бы избегать использования model.save () и load_model () в решении.

(keras 2.2.4, тензор потока 1.12.0)

Любые мысли приветствуются!

1 Ответ

0 голосов
/ 25 февраля 2019

, так как вы не вставили свой код и веса, я не могу сказать вам много, но я подозреваю, что эта проблема может быть из-за отсева или регуляризации, если вы используете любой из двух методов, установите параметры или процент выпадений должным образомЧто касается вашей сети, высокий процент в небольшой сети приведет к такого же рода проблемам с регуляризацией.а для возврата и сохранения моделей используйте контрольные точки.

...