У меня есть стандартная нейронная сеть, которую я тренировал некоторое время, но не до совершенства. После завершения тренировки я сохраняю сеть на диске.
Через некоторое время я хочу возобновить обучение сети, откуда она ушла. Проблема, кажется, что каждый раз, когда я начинаю новую тренировку, веса и смещения, кажется, полностью сбрасываются, что означает, что я тренирую сеть с нуля снова и снова:
Предыдущая сессия:
Новая сессия:
Вот выдержка из моей тренировочной функции:
void trainNet(fann *net) {
const unsigned int
max_epochs = 1000,
epochs_between_reports = 10;
const float desired_error = 0.01f;
net -> learning_momentum = 0.1f;
fann_train_on_file(net, "sessions.data", max_epochs, epochs_between_reports, desired_error);
fann_save(net, "network.net");
fann_destroy(net);
}
Что мне не хватает? Мне кажется настолько интуитивно понятным, что вы можете тренировать сеть в течение нескольких сеансов. Я ошибся? Это ограничение библиотеки?
Данные тренировки оставались постоянными между сессиями. Это не ограничивается этой конкретной сетью — сети любого формата, кажется, вызывают ту же проблему.
Что мне не хватает?
Согласно Документация — Обучение FANN> Управление данными обучения> fann_set_training_algorithm
:
Установить алгоритм обучения.
Пример :
fann_set_training_algorithm(net, FANN_TRAIN_INCREMENTAL)
Других решений пока нет …