2015-10-24 3 views
0

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

Вот моя программа обучения, я свяжу -ldoublefann

#include "fann.h" 

int main() 
{ 
     const float connection_rate = 1; 
     const float learning_rate = 0.7; 
     const unsigned int num_input = 14; 
     const unsigned int num_output = 2; 
     const unsigned int num_layers = 3; 
     const unsigned int num_neurons_hidden = 4; 
     const float desired_error = 0.0001; 
     const unsigned int max_iterations = 20000; 
     const unsigned int iterations_between_reports = 1000; 

     struct fann *ann = fann_create_standard (num_layers, 
       num_input, num_neurons_hidden, num_output); 

     fann_train_on_file(ann, "t120.train", max_iterations, 
       iterations_between_reports, desired_error); 

     fann_save(ann, "t120.net"); 

     fann_destroy(ann); 

     return 0; 
} 

Мой Makefile

CFLAGS=-ldoublefann 

all: train 
train: train.c 

Выход следующим образом:

Max epochs 20000. Desired error: 0.0001000000. 
Epochs   1. Current error: 1426.2332763672. Bit fail 568. 
Epochs   1000. Current error: 1403.6292724609. Bit fail 569. 
Epochs   2000. Current error: 1403.6292724609. Bit fail 569. 
Epochs   3000. Current error: 1403.6292724609. Bit fail 569. 
Epochs   4000. Current error: 1403.6292724609. Bit fail 569. 
Epochs   5000. Current error: 1403.6292724609. Bit fail 569. 

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

Вот мои данные:

My Data was too large to add to the post

Мои данные состоят из около 285 линий с 14 входами и 2 выходами.

Я делаю это правильно, и это не коррелирует? Или я сделал что-то не так?

+0

У меня нет опыта работы с FANN, просто наткнулся на ваш вопрос. Однако в разделах связанных вопросов я нашел следующее: http://stackoverflow.com/questions/12921798/what-is-the-purpose-of-bit-fail-in-fann?rq=1 После чтения ответов там, для меня как «аутсайдера», похоже, что вы делаете это правильно, но FANN не может «понять» ваши данные, т. е. нет никакой корреляции. –

+0

Спасибо, Кевин, посмотрим, может ли кто-нибудь прокомментировать мой код. Я не видел примеров использования этого стиля. – Bodger

ответ

0

Вам нужно либо:

  1. #include "fann.h" и ссылка -lfann
  2. #include "doublefann.h" и ссылка -ldoublefann

Смотрите эту discussion и это question, где кто-то имел подобный вопрос.

Смежные вопросы