示例#1
0
/* 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;
}