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_standardfann_train_on_filefann_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/