/* A Hopfield network will be implemented as a fully recurrent network with 0 inputs and 'num_neurons' outputs! */ FANN_EXTERNAL struct fann *FANN_API fann_create_hopfield( unsigned int num_neurons) { struct fann *ann = NULL; assert(num_neurons > 0); ann = (struct fann *)fann_create_fully_recurrent( num_neurons, 0, num_neurons); return ann; }
int main(void) { struct fann *ann = NULL; unsigned int i = 0; unsigned int num_neurons = 0; unsigned int num_inputs = 0; unsigned int num_outputs = 0; fann_seed_rand(); /* GENERATE RANDOM RECURRENT NETWORKS */ for (i=0; i<NUM_TESTS; i++) { num_inputs = rand()%5; num_neurons = rand()%10 + 1; // Number of outputs must be <= number of neurons do { num_outputs = rand()%10; } while (num_outputs > num_neurons); ann = fann_create_fully_recurrent(num_neurons, num_inputs, num_outputs); printf("\n\nCreated recurrent network (neurons=%d, inputs=%d, outputs=%d)\n", num_neurons, num_inputs, num_outputs); printf("\n-------------------------------------------\n"); printf("NET %d - CONNECTION MATRIX:\n", i); printf(" (I=input, b=bias, O=output, #=internal)\n"); printf("-------------------------------------------\n"); fann_print_connections(ann); printf("\n\n-------------------------------------------\n"); printf("NET %d - ANN PARAMETERS:\n", i); printf("-------------------------------------------\n"); fann_print_parameters(ann); /* CLEAN UP */ fann_destroy(ann); } return 0; }