var searchIndex = {}; searchIndex["fann"] = {"doc":"","items":[[3,"FannError","fann","",null,null],[12,"error_type","","",0,null],[12,"error_str","","",0,null],[3,"TrainData","","",null,null],[3,"CascadeParams","","Parameters for cascade training.",null,null],[12,"output_change_fraction","","A number between 0 and 1 determining how large a fraction the mean square error should\nchange within `output_stagnation_epochs` during training of the output connections, in\norder for the training to stagnate. After stagnation, training of the output connections\nends and new candidates are prepared.",1,null],[12,"output_stagnation_epochs","","The number of epochs training is allowed to continue without changing the MSE by a fraction\nof at least `output_change_fraction`.",1,null],[12,"candidate_change_fraction","","A number between 0 and 1 determining how large a fraction the mean square error should\nchange within `candidate_stagnation_epochs` during training of the candidate neurons, in\norder for the training to stagnate. After stagnation, training of the candidate neurons is\nstopped and the best candidate is selected.",1,null],[12,"candidate_stagnation_epochs","","The number of epochs training is allowed to continue without changing the MSE by a fraction\nof `candidate_change_fraction`.",1,null],[12,"candidate_limit","","A limit for how much the candidate neuron may be trained. It limits the ratio between the\nMSE and the candidate score.",1,null],[12,"weight_multiplier","","Multiplier for the weight of the candidate neuron before adding it to the network. Usually\nbetween 0 and 1, to make training less aggressive.",1,null],[12,"max_out_epochs","","The maximum number of epochs the output connections may be trained after adding a new\ncandidate neuron.",1,null],[12,"max_cand_epochs","","The maximum number of epochs the input connections to the candidates may be trained before\nadding a new candidate neuron.",1,null],[12,"activation_functions","","The activation functions for the candidate neurons.",1,null],[12,"activation_steepnesses","","The activation function steepness values for the candidate neurons.",1,null],[12,"num_candidate_groups","","The number of candidate neurons to be trained for each combination of activation function\nand steepness.",1,null],[3,"Fann","","",null,null],[4,"FannErrorType","","",null,null],[13,"CantOpenConfigR","","Unable to open configuration file for reading",2,null],[13,"CantOpenConfigW","","Unable to open configuration file for writing",2,null],[13,"WrongConfigVersion","","Wrong version of configuration file",2,null],[13,"CantReadConfig","","Error reading info from configuration file",2,null],[13,"CantReadNeuron","","Error reading neuron info from configuration file",2,null],[13,"CantReadConnections","","Error reading connections from configuration file",2,null],[13,"WrongNumConnections","","Number of connections not equal to the number expected",2,null],[13,"CantOpenTdW","","Unable to open train data file for writing",2,null],[13,"CantOpenTdR","","Unable to open train data file for reading",2,null],[13,"CantReadTd","","Error reading training data from file",2,null],[13,"CantAllocateMem","","Unable to allocate memory",2,null],[13,"CantTrainActivation","","Unable to train with the selected activation function",2,null],[13,"CantUseActivation","","Unable to use the selected activation function",2,null],[13,"TrainDataMismatch","","Irreconcilable differences between two `fann_train_data` structures",2,null],[13,"CantUseTrainAlg","","Unable to use the selected training algorithm",2,null],[13,"TrainDataSubset","","Trying to take subset which is not within the training set",2,null],[13,"IndexOutOfBound","","Index is out of bound",2,null],[13,"ScaleNotPresent","","Scaling parameters not present",2,null],[13,"CantSaveFile","","Failed to save file",2,null],[13,"ErrorCodeReturned","","C function returned an error code, i. e. not 0, but did not specify error",2,null],[4,"TrainAlgorithm","","The Training algorithms used when training on `fann_train_data` with functions like\n`fann_train_on_data` or `fann_train_on_file`. The incremental training alters the weights\nafter each time it is presented an input pattern, while batch only alters the weights once after\nit has been presented to all the patterns.",null,null],[13,"Incremental","","Standard backpropagation algorithm, where the weights are updated after each training\npattern. This means that the weights are updated many times during a single epoch and some\nproblems will train very fast, while other more advanced problems will not train very well.",3,null],[12,"learning_momentum","fann::TrainAlgorithm","A higher momentum can be used to speed up incremental training. It should be between 0\nand 1, the default is 0.",3,null],[12,"learning_rate","","The learning rate determines how aggressive training should be. Default is 0.7.",3,null],[13,"Batch","fann","Standard backpropagation algorithm, where the weights are updated after calculating the mean\nsquare error for the whole training set. This means that the weights are only updated once\nduring an epoch. For this reason some problems will train slower with this algorithm. But\nsince the mean square error is calculated more correctly than in incremental training, some\nproblems will reach better solutions.",3,null],[12,"learning_rate","fann::TrainAlgorithm","The learning rate determines how aggressive training should be. Default is 0.7.",3,null],[13,"Rprop","fann","A more advanced batch training algorithm which achieves good results for many problems.\n`Rprop` is adaptive and therefore does not use the `learning_rate`. Some other parameters\ncan, however, be set to change the way `Rprop` works, but it is only recommended for users\nwith a deep understanding of the algorithm. The original RPROP training algorithm is\ndescribed by [Riedmiller and Braun, 1993], but the algorithm used here is a variant, iRPROP,\ndescribed by [Igel and Husken, 2000].",3,null],[12,"decrease_factor","fann::TrainAlgorithm","A value less than 1, used to decrease the step size during training. Default 0.5",3,null],[12,"increase_factor","","A value greater than 1, used to increase the step size during training. Default 1.2",3,null],[12,"delta_min","","The minimum step size. Default 0.0",3,null],[12,"delta_max","","The maximum step size. Default 50.0",3,null],[12,"delta_zero","","The initial step size. Default 0.1",3,null],[13,"Quickprop","fann","A more advanced batch training algorithm which achieves good results for many problems. The\nquickprop training algorithm uses the `learning_rate` parameter along with other more\nadvanced parameters, but it is only recommended to change these for users with a deep\nunderstanding of the algorithm. Quickprop is described by [Fahlman, 1988].",3,null],[12,"decay","fann::TrainAlgorithm","The factor by which weights should become smaller in each iteration, to ensure that\nthe weights don't grow too large during training. Should be a negative number close to\n0. The default is -0.0001.",3,null],[12,"mu","","The mu factor is used to increase or decrease the step size; should always be greater\nthan 1. The default is 1.75.",3,null],[12,"learning_rate","","The learning rate determines how aggressive training should be. Default is 0.7.",3,null],[4,"ActivationFunc","fann","The activation functions used for the neurons during training. They can either be set for a\ngroup of neurons using `set_activation_func_hidden` and `set_activation_func_output`, or for a\nsingle neuron using `set_activation_func`.",null,null],[13,"Linear","","Linear activation function.",4,null],[13,"Threshold","","Threshold activation function.",4,null],[13,"ThresholdSymmetric","","Threshold activation function.",4,null],[13,"Sigmoid","","Sigmoid activation function.",4,null],[13,"SigmoidStepwise","","Stepwise linear approximation to sigmoid.",4,null],[13,"SigmoidSymmetric","","Symmetric sigmoid activation function, aka. tanh.",4,null],[13,"SigmoidSymmetricStepwise","","Stepwise linear approximation to symmetric sigmoid.",4,null],[13,"Gaussian","","Gaussian activation function.",4,null],[13,"GaussianSymmetric","","Symmetric gaussian activation function.",4,null],[13,"GaussianStepwise","","Stepwise linear approximation to gaussian.\nFaster than gaussian but a bit less precise.\nNOT implemented yet.",4,null],[13,"Elliott","","Fast (sigmoid like) activation function defined by David Elliott",4,null],[13,"ElliottSymmetric","","Fast (symmetric sigmoid like) activation function defined by David Elliott",4,null],[13,"LinearPiece","","Bounded linear activation function.",4,null],[13,"LinearPieceSymmetric","","Bounded linear activation function.",4,null],[13,"SinSymmetric","","Periodical sine activation function.",4,null],[13,"CosSymmetric","","Periodical cosine activation function.",4,null],[13,"Sin","","Periodical sine activation function.",4,null],[13,"Cos","","Periodical cosine activation function.",4,null],[4,"ErrorFunc","","Error function used during training.",null,null],[13,"Linear","","Standard linear error function",5,null],[13,"Tanh","","Tanh error function; usually better but may require a lower learning rate. This error\nfunction aggressively targets outputs that differ much from the desired, while not targeting\noutputs that only differ slightly. Not recommended for cascade or incremental training.",5,null],[4,"StopFunc","","Stop critieria for training.",null,null],[13,"Mse","","The mean square error of the whole output.",6,null],[13,"Bit","","The number of training data points where the output neuron's error was greater than the bit\nfail limit. Every neuron is counted for every training data sample where it fails.",6,null],[4,"NetType","","Network types",null,null],[13,"Layer","","Each layer of neurons only has connections to the next layer.",7,null],[13,"Shortcut","","Each layer has connections to all following layers.",7,null],[11,"eq","","",2,null],[11,"fmt","","",2,null],[11,"clone","","",2,null],[11,"fmt","","",2,null],[11,"eq","","",0,null],[11,"ne","","",0,null],[11,"fmt","","",0,null],[11,"clone","","",0,null],[11,"fmt","","",0,null],[11,"description","","",0,null],[11,"check_no_error","","Returns an `Err` if the previous operation on `errdat` has resulted in an error, otherwise\n`Ok(())`.",0,null],[11,"check_zero","","",0,null],[11,"from_file","","Read a file that stores training data.",8,{"inputs":[{"name":"p"}],"output":{"name":"fannresult"}}],[11,"save","","Save the training data to a file.",8,null],[11,"merge","","Merge the given data sets into a new one.",8,{"inputs":[{"name":"traindata"},{"name":"traindata"}],"output":{"name":"fannresult"}}],[11,"subset","","Create a subset of the training data, starting at the given positon and consisting of\n`length` samples.",8,null],[11,"length","","Return the number of training patterns in the data.",8,null],[11,"num_input","","Return the number of input values in each training pattern.",8,null],[11,"num_output","","Return the number of output values in each training pattern.",8,null],[11,"scale_for","","Scale input and output in the training data using the parameters previously calculated for\nthe given network.",8,null],[11,"descale_for","","Descale input and output in the training data using the parameters previously calculated for\nthe given network.",8,null],[11,"scale_input","","Scales the inputs in the training data to the specified range.",8,null],[11,"scale_output","","Scales the outputs in the training data to the specified range.",8,null],[11,"scale","","Scales the inputs and outputs in the training data to the specified range.",8,null],[11,"shuffle","","Shuffle training data, randomizing the order. This is recommended for incremental training\nwhile it does not affect batch training.",8,null],[11,"get_raw","","Get a pointer to the underlying raw `fann_train_data` structure.",8,null],[11,"clone","","",8,null],[11,"drop","","",8,null],[6,"FannResult","","",null,null],[6,"Connection","","",null,null],[11,"eq","","",3,null],[11,"ne","","",3,null],[11,"fmt","","",3,null],[11,"clone","","",3,null],[11,"default_incremental","","The `Incremental` algorithm with default parameters.",3,{"inputs":[],"output":{"name":"trainalgorithm"}}],[11,"default_batch","","The `Batch` algorithm with default parameters.",3,{"inputs":[],"output":{"name":"trainalgorithm"}}],[11,"default_rprop","","The `Rprop` algorithm with default parameters.",3,{"inputs":[],"output":{"name":"trainalgorithm"}}],[11,"default_quickprop","","The `Quickprop` algorithm with default parameters.",3,{"inputs":[],"output":{"name":"trainalgorithm"}}],[11,"default","","",3,{"inputs":[],"output":{"name":"trainalgorithm"}}],[11,"eq","","",1,null],[11,"ne","","",1,null],[11,"fmt","","",1,null],[11,"clone","","",1,null],[11,"get_num_candidates","","The number of candidates used during training: the number of combinations of activation\nfunctions and steepnesses, times `num_candidate_groups`.",1,null],[11,"default","","",1,{"inputs":[],"output":{"name":"cascadeparams"}}],[11,"eq","","",4,null],[11,"fmt","","",4,null],[11,"clone","","",4,null],[11,"eq","","",5,null],[11,"clone","","",5,null],[11,"eq","","",6,null],[11,"clone","","",6,null],[11,"eq","","",7,null],[11,"fmt","","",7,null],[11,"clone","","",7,null],[11,"new","","Create a fully connected neural network.",9,null],[11,"new_sparse","","Create a neural network that is not necessarily fully connected.",9,null],[11,"new_shortcut","","Create a neural network which has shortcut connections, i. e. it doesn't connect only each\nlayer to its successor, but every layer with every later layer: Each neuron has connections\nto all neurons in all subsequent layers.",9,null],[11,"from_file","","Read a neural network from a file.",9,{"inputs":[{"name":"p"}],"output":{"name":"fannresult"}}],[11,"save","","Save the network to a configuration file.",9,null],[11,"randomize_weights","","Give each connection a random weight between `min_weight` and `max_weight`.",9,null],[11,"init_weights","","Initialize the weights using Widrow & Nguyen's algorithm.",9,null],[11,"print_connections","","Print the connections of the network in a compact matrix, for easy viewing of its\ninternals.",9,null],[11,"print_parameters","","Print all parameters and options of the network.",9,null],[11,"train","","Train with a single pair of input and output. This is always incremental training (see\n`TrainAlg`), since only one pattern is presented.",9,null],[11,"train_on_data","","Train the network on the given data set.",9,null],[11,"train_on_file","","Do the same as `train_on_data` but read the training data directly from a file.",9,null],[11,"train_epoch","","Train one epoch with a set of training data, i. e. each sample from the training data is\nconsidered exactly once.",9,null],[11,"test","","Test with a single pair of input and output. This operation updates the mean square error\nbut does not change the network.",9,null],[11,"test_data","","Test with a training data set and calculate the mean square error.",9,null],[11,"get_mse","","Get the mean square error.",9,null],[11,"get_bit_fail","","Get the number of fail bits, i. e. the number of neurons which differed from the desired\noutput by more than the bit fail limit since the previous reset.",9,null],[11,"reset_mse_and_bit_fail","","Reset the mean square error and bit fail count.",9,null],[11,"run","","Run the input through the neural network and returns the output. The length of the input\nmust equal the number of input neurons and the length of the output will equal the number\nof output neurons.",9,null],[11,"get_num_input","","Get the number of input neurons.",9,null],[11,"get_num_output","","Get the number of output neurons.",9,null],[11,"get_total_neurons","","Get the total number of neurons, including the bias neurons.",9,null],[11,"get_total_connections","","Get the total number of connections.",9,null],[11,"get_network_type","","Get the type of the neural network.",9,null],[11,"get_connection_rate","","Get the connection rate used when the network was created.",9,null],[11,"get_num_layers","","Get the number of layers in the network.",9,null],[11,"get_layer_sizes","","Get the number of neurons in each layer of the network.",9,null],[11,"get_bias_counts","","Get the number of bias neurons in each layer of the network.",9,null],[11,"get_connections","","Get a list of all connections in the network.",9,null],[11,"set_connections","","Set the weights of all given connections.",9,null],[11,"set_weight","","Set the weight of the given connection.",9,null],[11,"get_activation_func","","Get the activation function for neuron number `neuron` in layer number `layer`, counting\nthe input layer as number 0. Input layer neurons do not have an activation function, so\n`layer` must be at least 1.",9,null],[11,"set_activation_func","","Set the activation function for neuron number `neuron` in layer number `layer`, counting\nthe input layer as number 0. Input layer neurons do not have an activation function, so\n`layer` must be at least 1.",9,null],[11,"set_activation_func_hidden","","Set the activation function for all hidden layers.",9,null],[11,"set_activation_func_output","","Set the activation function for the output layer.",9,null],[11,"get_activation_steepness","","Get the activation steepness for neuron number `neuron` in layer number `layer`.",9,null],[11,"set_activation_steepness","","Set the activation steepness for neuron number `neuron` in layer number `layer`, counting\nthe input layer as number 0. Input layer neurons do not have an activation steepness, so\nlayer must be at least 1.",9,null],[11,"set_activation_steepness_layer","","Set the activation steepness for layer number `layer`.",9,null],[11,"set_activation_steepness_hidden","","Set the activation steepness for all hidden layers.",9,null],[11,"set_activation_steepness_output","","Set the activation steepness for the output layer.",9,null],[11,"get_error_func","","Get the error function used during training.",9,null],[11,"set_error_func","","Set the error function used during training.",9,null],[11,"get_stop_func","","Get the stop criterion for training.",9,null],[11,"set_stop_func","","Set the stop criterion for training.",9,null],[11,"get_bit_fail_limit","","Get the bit fail limit.",9,null],[11,"set_bit_fail_limit","","Set the bit fail limit.",9,null],[11,"cascadetrain_on_data","","Train the network on the given data set, using the Cascade2 algorithm: This adds neurons to\nthe neural network while training, starting with an ANN without any hidden layers. The\nnetwork should use shortcut connections, so it needs to be created like this:",9,null],[11,"cascadetrain_on_file","","Do the same as `cascadetrain_on_data` but read the training data directly from a file.",9,null],[11,"get_cascade_params","","Get cascade training parameters.",9,null],[11,"set_cascade_params","","Set cascade training parameters.",9,null],[11,"get_train_algorithm","","Get the currently configured training algorithm.",9,null],[11,"set_train_algorithm","","Set the algorithm to be used for training.",9,null],[11,"set_input_scaling_params","","Calculate input scaling parameters for future use based on the given training data.",9,null],[11,"set_output_scaling_params","","Calculate output scaling parameters for future use based on the given training data.",9,null],[11,"set_scaling_params","","Calculate scaling parameters for future use based on the given training data.",9,null],[11,"clear_scaling_params","","Clear scaling parameters.",9,null],[11,"scale_input","","Scale data in input vector before feeding it to the network, based on previously calculated\nparameters.",9,null],[11,"scale_output","","Scale data in output vector before feeding it to the network, based on previously calculated\nparameters.",9,null],[11,"descale_input","","Descale data in input vector after feeding it to the network, based on previously calculated\nparameters.",9,null],[11,"descale_output","","Descale data in output vector after getting it from the network, based on previously\ncalculated parameters.",9,null],[11,"drop","","",9,null]],"paths":[[3,"FannError"],[3,"CascadeParams"],[4,"FannErrorType"],[4,"TrainAlgorithm"],[4,"ActivationFunc"],[4,"ErrorFunc"],[4,"StopFunc"],[4,"NetType"],[3,"TrainData"],[3,"Fann"]]}; initSearch(searchIndex);