Продолжить обучение модели deeplearning4j после ее сохранения и загрузки

Я использую Сверточную Нейронную Сеть, и я сохраняю ее и загружаю через класс сериализатора модели.

То, что я хочу сделать, это иметь возможность вернуться позже и продолжить обучение модели на новых данных, предоставленных ей.

Что я делаю, я загружаю его с помощью ComputationGraph net = ModelSerializer.restoreComputationGraph(modelFileName);

и затем я даю ему данные, как раньше, с помощью net.train(dataSetIterator);

Кажется, это работает, но это делает мою точность очень плохой. До того, как я это сделал, было около 89%, и, используя те же данные, он становится примерно на 50% точным после нескольких итераций (используя те же данные, на которых он только что натренировался, так что если что-то должно получаться глупо более точным) право?).

Я пропускаю шаг?

1 ответ

Я думаю, что будет сложно ответить на основе предоставленной информации, но я приведу вам пример. У меня была именно эта проблема. Я основал свое приложение на GravesLSTMCharModellingExample (который является LSTM). Я сохранил свою модель после запуска в течение нескольких эпох (в этот момент она генерировала четкие предложения), но при загрузке она вызвала мусор. Я думал, что все было одинаково, но в итоге оказалось, что я не инициализировал CharacterIterator одинаково. Когда я это исправил, все заработало как положено.

Короче говоря, короткая история; Проверьте ваши значения при инициализации вспомогательных классов.

Другие вопросы по тегам