⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fann_data.h

📁 一个功能强大的神经网络分析程序
💻 H
字号:
/*Fast Artificial Neural Network Library (fann)Copyright (C) 2003 Steffen Nissen (lukesky@diku.dk)This library is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2.1 of the License, or (at your option) any later version.This library is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNULesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#ifndef __fann_data_h__#define __fann_data_h__#include <stdio.h>/* ----- Data structures ----- * No data within these structures should be altered directly by the user. */struct fann_neuron{	fann_type *weights;	struct fann_neuron **connected_neurons;	unsigned int num_connections;	fann_type value;#ifdef __GNUC__}__attribute__((packed));#else};#endif/* A single layer in the neural network. */struct fann_layer{	/* A pointer to the first neuron in the layer 	 * When allocated, all the neurons in all the layers are actually	 * in one long array, this is because we wan't to easily clear all	 * the neurons at once.	 */	struct fann_neuron *first_neuron;	/* A pointer to the neuron past the last neuron in the layer */	/* the number of neurons is last_neuron - first_neuron */	struct fann_neuron *last_neuron;};/* The fast artificial neural network(fann) structure */struct fann{	/* The type of error that last occured. */	unsigned int errno_f;	/* Where to log error messages. */	FILE *error_log;	/* A string representation of the last error. */	char * errstr;	/* the learning rate of the network */	float learning_rate;	/* the connection rate of the network	 * between 0 and 1, 1 meaning fully connected	 */	float connection_rate;	/* is 1 if shortcut connections are used in the ann otherwise 0	 * Shortcut connections are connections that skip layers.	 * A fully connected ann with shortcut connections are a ann where	 * neurons have connections to all neurons in all later layers.	 */	unsigned int shortcut_connections;	/* pointer to the first layer (input layer) in an array af all the layers,	 * including the input and outputlayers 	 */	struct fann_layer *first_layer;	/* pointer to the layer past the last layer in an array af all the layers,	 * including the input and outputlayers 	 */	struct fann_layer *last_layer;	/* Total number of neurons.	 * very usefull, because the actual neurons are allocated in one long array	 */	unsigned int total_neurons;	/* Number of input neurons (not calculating bias) */	unsigned int num_input;	/* Number of output neurons (not calculating bias) */	unsigned int num_output;	/* Used to contain the errors used during training	 * Is allocated during first training session,	 * which means that if we do not train, it is never allocated.	 */	fann_type *train_errors;	/* Used to choose which activation function to use	   	   Sometimes it can be smart, to set the activation function for the hidden neurons	   to FANN_THRESHOLD and the activation function for the output neurons to FANN_SIGMOID,	   in this way you get a very fast network, that is still cabable of	   producing real valued output.	 */	unsigned int activation_function_hidden, activation_function_output;	/* Parameters for the activation function */	fann_type activation_steepness_hidden;	fann_type activation_steepness_output;	/* Training algorithm used when calling fann_train_on_..	 */	unsigned int training_algorithm;#ifdef FIXEDFANN	/* the decimal_point, used for shifting the fix point	   in fixed point integer operatons.	*/	unsigned int decimal_point;		/* the multiplier, used for multiplying the fix point	   in fixed point integer operatons.	   Only used in special cases, since the decimal_point is much faster.	*/	unsigned int multiplier;#endif	/* When in choosen (or in fixed point), the sigmoid function is	   calculated as a stepwise linear function. In the	   activation_results array, the result is saved, and in the	   two values arrays, the values that gives the results are saved.	 */	fann_type activation_results_hidden[6];	fann_type activation_values_hidden[6];	fann_type activation_results_output[6];	fann_type activation_values_output[6];	/* Total number of connections.	 * very usefull, because the actual connections	 * are allocated in one long array	 */	unsigned int total_connections;	/* used to store outputs in */	fann_type *output;	/* the number of data used to calculate the mean square error.	 */	unsigned int num_MSE;	/* the total error value.	   the real mean square error is MSE_value/num_MSE	 */	float MSE_value;	/* The error function used during training. (default FANN_ERRORFUNC_TANH)	 */	unsigned int train_error_function;		/* Variables for use with Cascade Correlation */	/* The error must change by at least this	   fraction of its old value to count as a	   significant change. NOT IMPLEMENTED YET	*/	/* float change_fraction; */	/* No change in this number of epochs will cause	   stagnation. NOT IMPLEMENTED YET	*/	/* unsigned int stagnation_epochs; */	/* Variables for use with Quickprop training */	/* Decay is used to make the weights not go so high */	float quickprop_decay;	/* Mu is a factor used to increase and decrease the stepsize */	float quickprop_mu;	/* Variables for use with with RPROP training */	/* Tells how much the stepsize should increase during learning */	float rprop_increase_factor;	/* Tells how much the stepsize should decrease during learning */	float rprop_decrease_factor;	/* The minimum stepsize */	float rprop_delta_min;	/* The maximum stepsize */	float rprop_delta_max;		/* Used to contain the slope errors used during batch training	 * Is allocated during first training session,	 * which means that if we do not train, it is never allocated.	 */	fann_type *train_slopes;	/* The previous step taken by the quickprop/rprop procedures.	   Not allocated if not used.	 */	fann_type *prev_steps;	/* The slope values used by the quickprop/rprop procedures.	   Not allocated if not used.	 */	fann_type *prev_train_slopes;};/* Structure used to store data, for use with training. */struct fann_train_data{	unsigned int errno_f;	FILE *error_log;	char *errstr;	unsigned int num_data;	unsigned int num_input;	unsigned int num_output;	fann_type **input;	fann_type **output;};/* Structure used to store error-related information */struct fann_error{	unsigned int errno_f;	FILE *error_log;	char * errstr;};enum {	/* Standard backpropagation incremental or online training */	FANN_TRAIN_INCREMENTAL = 0,	/* Standard backpropagation batch training */	FANN_TRAIN_BATCH,	/* The iRprop- training algorithm */	FANN_TRAIN_RPROP,	/* The quickprop training algorithm */	FANN_TRAIN_QUICKPROP};static char const * const FANN_TRAIN_NAMES[] = {	"FANN_TRAIN_INCREMENTAL",	"FANN_TRAIN_BATCH",	"FANN_TRAIN_RPROP",	"FANN_TRAIN_QUICKPROP"};enum {	/* Standard linear error function */	FANN_ERRORFUNC_LINEAR = 0,	/* Tanh error function, usually better but can require	   a lower learning rate */	FANN_ERRORFUNC_TANH};static char const * const FANN_ERRORFUNC_NAMES[] = {	"FANN_ERRORFUNC_LINEAR",	"FANN_ERRORFUNC_TANH"};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -