#ifndef _MY_ANN_LOCAL_H #define _MY_ANN_LOCAL_H /** libfann */ #include "floatfann.h" /** project wide definitions */ #include "local.h" /** holds the global configuration of ANN and related stuff in eatr.c and co. */ struct s_net { /** 1 means full connected, 0.5 half connected... */ float connection_rate; /** 0.7 is a good choice */ float learning_rate; /** 3 means, one input, one hidden, one output, 3 is a good choice */ unsigned int num_layers; /** equivalent to (Channels * TAPs) in EEG-data, should be 64*20=1280 */ unsigned int num_input; /** should be equivalent to count of channels */ unsigned int num_neurons_hidden; /** should be 1, because it signals that was an artefact or not */ unsigned int num_output; /** abort the training if learning error is less desired error */ float desired_error; /** abort if max_steps reached, it doesnot mean epoch-learning, its pattern-learning! */ unsigned int max_steps; /** every "epochs_between_report" epoche generate a report about state and statistics */ unsigned int steps_between_reports; /** net-file to load network from */ char * net_infile; /** general prefix for files to be written */ char * outfilenames; /** inputfile name */ char * infilename; char * trainfilename; char * testfilename; /** net-file to store network to */ char * net_outfile; /** net-file to store mean square learning error to */ char * net_mqlefile; /** net-file to store mean square generalization error to */ char * net_mqgefile; /** net-file to store network config to (machine parseable) */ char * net_cfgfile; /** data */ struct fann_train_data * train_data; struct fann_train_data * test_data; int data_len; int data_cutpos; unsigned short int verbose; unsigned short int adapt_learnrate; /** after which steps the network should be periodically saved */ unsigned int net_writeperiod; } net; /* globally holds parameters of network */ #endif