Я экспериментировал с библиотекой FANN, которая, кажется, является отличной библиотекой для нейронной сети, и у меня возникла проблема с ее использованием.Использование библиотеки FANN
То, что я пытаюсь сделать здесь, - это обучение нейронной сети ради возиться с библиотекой, давая ей вход и ожидая выхода.
FANN::neural_net nn;
const float desired_error = 0.00001;
const unsigned int max_epochs = 500000;
const unsigned int epochs_between_reports = 1000;
const unsigned int layers_count = 3;
const unsigned int layers[layers_count] = {7, 5, 1};
nn.create_standard_array(layers_count, layers);
nn.train_on_file(TRAINING_DATA, max_epochs, epochs_between_reports, desired_error);
Вот первые строки моего файла данных обучения (TRAINING_DATA):
16969 7 1
0.0812069 0.0812069 0.381578 0.0812069 5.8931e-05 0.0843302 0.606695
1
0.429961 0.0509753 0.381578 0.0266957 0.000117862 0.00707172 0.0221581
1
0.0983558 0.486888 0.381578 0.000117862 0.0266957 0.00701279 0.0539808
1
0.0983558 0.486888 0.598562 0.0161471 0.0161471 0.000471448 0.00135541
1
полный набор данных можно найти here
Использование массива данных выборки из файла данных обучения , Я должен получить результат, соответствующий этому, не так ли? Однако, если я сделаю следующее, я получаю 0 в качестве вывода ...
fann_type i[7], *o;
i[0] = 0.429961; i[1] = 0.0509753; i[2] = 0.381578; i[3] = 0.0266957; i[4] = 0.000117862; i[5] = 0.00707172; i[6] = 0.0221581;
o = nn.run(i);
std::cout << "output (run) is " << o[0] << std::endl;
Может кто-нибудь действительно объяснить мне, что здесь происходит?
Я использую версию fann 2.2.0.
Спасибо
Редактировать: Похоже, что 2.1.0 бета-версии дают ожидаемые результаты, но не версия 2.2.0.
Редактировать 2: На самом деле это была ошибка в версии, которую я использовал.
Вы получили 16969 примеры обучения, поэтому, когда у вас есть MSE (среднеквадратичная ошибка) <0,00001, что не означает, что все предсказано правильно. Ваша сеть даже достигает желаемой ошибки? – alfa
Да. Довольно быстро. – ALOToverflow
Испытывали ли вы какой-либо другой вход? – alfa