FANN: Как найти баланс между желаемой ошибкой и ошибкой бита? - PullRequest
2 голосов
/ 12 апреля 2011

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

Как найти хороший баланс между желаемой ошибкой и ошибкой бита?

TL; DR: Как рассчитать минимально возможную желаемую ошибку, чтобы сеть прекратила обучение, когда сбой бита достигнет 0?

1 Ответ

0 голосов
/ 20 мая 2011

Вы можете создать метод типа fann_callback_type , назовем его trainCallback , а затем установить этот метод как обратный вызов вашего NN (используя метод fann_set_callback )

Этот метод - trainingCallback - будет вызываться во время тренировки, а не распечатывать детали обучения.В этом обратном вызове у вас есть доступ ко всей необходимой информации (MSE, bitfail и т. Д. - проверьте подпись по ссылкам выше), и если вы вернете значение меньше 0, обучение прекратится.

Надеюсь, это поможет



int trainCallback(struct fann *ann, struct fann_train_data *train, 
                           unsigned intmax_epochs, unsigned int epochs_between_reports,
                           float desired_error, unsigned int epochs) {
   if(/*your condition*/)
       return -1;
   return 0;
}

/* in your code */
{
...
fann_set_callback(ptrToFANN, &trainCallback);
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...