Original English version: http://leenissen.dk/fann/wp/help/getting-started/
Для получения общей информации о FANN, перейдите на официальную FANN страницу справки .
ANN обычно работает в двух различных режимах, режим обучения и режим исполнения. Хотя это можно сделать в одной программе, рекомендуется использованием различных программ.
Есть несколько причин, почему это обычно хорошая идея написать подготовку и исполнение в двумя разными программами, но наиболее очевидным является тот факт, что типичная система ANN готовится только один раз, в то время как выполняется много раз.
Ниже приводится простая программа, которая готовит ANN с набором данных, а затем сохраняет ANN в файл.
#include "fann.h"
int main()
{
const unsigned int num_input = 2;
const unsigned int num_output = 1;
const unsigned int num_layers = 3;
const unsigned int num_neurons_hidden = 3;
const float desired_error = (const float) 0.001;
const unsigned int max_epochs = 500000;
const unsigned int epochs_between_reports = 1000;
struct fann *ann = fann_create_standard(num_layers, num_input,
num_neurons_hidden, num_output);
fann_set_activation_function_hidden(ann, FANN_SIGMOID_SYMMETRIC);
fann_set_activation_function_output(ann, FANN_SIGMOID_SYMMETRIC);
fann_train_on_file(ann, "xor.data", max_epochs,
epochs_between_reports, desired_error);
fann_save(ann, "xor_float.net");
fann_destroy(ann);
return 0;
}
Файл xor.data, используемый для обучения xor функции
4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1
Первая строка состоит из трех чисел: первое число — пара обучения в файле, второе — число входов, а третье — число выходов. Остальная часть файла фактические данные обучения, состоящие из одной линии с входами, одной с выходами и т.д.
Этот пример включает несколько основных функций, а именно fann_create_standard, fann_train_on_file, fann_save, и fann_destroy.
В следующем примере показана простая программа, которая выполняет один проход на ANN. Программа добавляет две новые функции (fann_create_from_file и fann_run) которые не были использованы в подготовке процедуры, а также fann_type
#include
#include "floatfann.h"
int main()
{
fann_type *calc_out;
fann_type input[2];
struct fann *ann = fann_create_from_file("xor_float.net");
input[0] = -1;
input[1] = 1;
calc_out = fann_run(ann, input);
printf("xor test (%f,%f) -> %f\n", input[0], input[1], calc_out[0]);
fann_destroy(ann);
return 0;
}
Если после прочтения документации, все еще возникают проблемы, или есть вопросы, которые не освещены в документации, обратитесь в форум FANN .
Original English version: http://leenissen.dk/fann/wp/help/getting-started/