Filewatcher File Search File Search
Catalog
Content Search
» » » » » libai-fann-perl_0.10-1_kfreebsd-amd64.deb » Content »
pkg://libai-fann-perl_0.10-1_kfreebsd-amd64.deb:35044/usr/share/man/man3/  info  control  downloads

libai-fann-perl - Perl wrapper for the FANN library…  more info»

AI::FANN.3pm.gz

AI::FANN(3pm)    User Contributed Perl Documentation   AI::FANN(3pm)



NAME
       AI::FANN - Perl wrapper for the Fast Artificial Neural
       Network library

SYNOPSIS
       Train...

         use AI::FANN qw(:all);

         # create an ANN with 2 inputs, a hidden layer with 3 neurons and an
         # output layer with 1 neuron:
         my $ann = AI::FANN->new_standard(2, 3, 1);

         $ann->hidden_activation_function(FANN_SIGMOID_SYMMETRIC);
         $ann->output_activation_function(FANN_SIGMOID_SYMMETRIC);

         # create the training data for a XOR operator:
         my $xor_train = AI::FANN::TrainData->new( [-1, -1], [-1],
                                                   [-1, 1], [1],
                                                   [1, -1], [1],
                                                   [1, 1], [-1] );

         $ann->train_on_data($xor_train, 500000, 1000, 0.001);

         $ann->save("xor.ann");

       Run...

         use AI::FANN;

         my $ann = AI::FANN->new_from_file("xor.ann");

         for my $a (-1, 1) {
           for my $b (-1, 1) {
             my $out = $ann->run([$a, $b]);
             printf "xor(%f, %f) = %f\n", $a, $b, $out->[0];
           }
         }

DESCRIPTION
         WARNING:  THIS IS A VERY EARLY RELEASE,
                   MAY CONTAIN CRITICAL BUGS!!!

       AI::FANN is a Perl wrapper for the Fast Artificial Neural
       Network (FANN) Library available from
       <http://fann.sourceforge.net>:

         Fast Artificial Neural Network Library is a free open source neural
         network library, which implements multilayer artificial neural
         networks in C with support for both fully connected and sparsely
         connected networks. Cross-platform execution in both fixed and
         floating point are supported. It includes a framework for easy
         handling of training data sets. It is easy to use, versatile, well
         documented, and fast. PHP, C++, .NET, Python, Delphi, Octave, Ruby,
         Pure Data and Mathematica bindings are available. A reference manual
         accompanies the library with examples and recommendations on how to
         use the library. A graphical user interface is also available for
         the library.

       AI::FANN object oriented interface provides an almost direct
       map to the C library API. Some differences have been
       introduced to make it more perlish:

       ·   Two classes are used: "AI::FANN" that wraps the C "struct
           fann" type and "AI::FANN::TrainData" that wraps "struct
           fann_train_data".

       ·   Prefixes and common parts on the C function names
           referring to those structures have been removed. For
           instance C "fann_train_data_shuffle" becomes
           "AI::FANN::TrainData::shuffle" that will be usually
           called as...

             $train_data->shuffle;

       ·   Pairs of C get/set functions are wrapped in Perl with
           dual accessor methods named as the attribute (and without
           any "set_"/"get_" prefix). For instance:

             $ann->bit_fail_limit($limit); # sets the bit_fail_limit

             $bfl = $ann->bit_fail_limit;  # gets the bit_fail_limit

           Pairs of get/set functions requiring additional indexing
           arguments are also wrapped inside dual accessors:

             # sets:
             $ann->neuron_activation_function($layer_ix, $neuron_ix, $actfunc);

             # gets:
             $af = $ann->neuron_activation_function($layer_ix, $neuron_ix);

           Important: note that on the Perl version, the optional
           value argument is moved to the last position (on the C
           version of the "set_" method it is usually the second
           argument).

       ·   Some functions have been renamed to make the naming more
           consistent and to follow Perl conventions:

             C                                      Perl
             -----------------------------------------------------------
             fann_create_from_file               => new_from_file
             fann_create_standard                => new_standard
             fann_get_num_input                  => num_inputs
             fann_get_activation_function        => neuron_activation_function
             fann_set_activation_function        => ^^^
             fann_set_activation_function_layer  => layer_activation_function
             fann_set_activation_function_hidden => hidden_activation_function
             fann_set_activation_function_output => output_activation_function

       ·   Boolean methods return true on success and undef on
           failure.

       ·   Any error reported from the C side is automaticaly
           converter to a Perl exception. No manual error checking
           is required after calling FANN functions.

       ·   Memory management is automatic, no need to call destroy
           methods.

       ·   Doubles are used for computations (using floats or fixed
           point types is not supported).

CONSTANTS
       All the constants defined in the C documentation are exported
       from the module:

         # import all...
         use AI::FANN ':all';

         # or individual constants...
         use AI::FANN qw(FANN_TRAIN_INCREMENTAL FANN_GAUSSIAN);

       The values returned from this constant subs yield the integer
       value on numerical context and the constant name when used as
       strings.

       The constants available are:

         # enum fann_train_enum:
         FANN_TRAIN_INCREMENTAL
         FANN_TRAIN_BATCH
         FANN_TRAIN_RPROP
         FANN_TRAIN_QUICKPROP

         # enum fann_activationfunc_enum:
         FANN_LINEAR
         FANN_THRESHOLD
         FANN_THRESHOLD_SYMMETRIC
         FANN_SIGMOID
         FANN_SIGMOID_STEPWISE
         FANN_SIGMOID_SYMMETRIC
         FANN_SIGMOID_SYMMETRIC_STEPWISE
         FANN_GAUSSIAN
         FANN_GAUSSIAN_SYMMETRIC
         FANN_GAUSSIAN_STEPWISE
         FANN_ELLIOT
         FANN_ELLIOT_SYMMETRIC
         FANN_LINEAR_PIECE
         FANN_LINEAR_PIECE_SYMMETRIC
         FANN_SIN_SYMMETRIC
         FANN_COS_SYMMETRIC
         FANN_SIN
         FANN_COS

         # enum fann_errorfunc_enum:
         FANN_ERRORFUNC_LINEAR
         FANN_ERRORFUNC_TANH

         # enum fann_stopfunc_enum:
         FANN_STOPFUNC_MSE
         FANN_STOPFUNC_BIT

CLASSES
       The classes defined by this package are:

   AI::FANN
       Wraps C "struct fann" types and provides the following
       methods (consult the C documentation for a full description
       of their usage):

       AI::FANN->new_standard(@layer_sizes)
           -

       AI::FANN->new_sparse($connection_rate, @layer_sizes)
           -

       AI::FANN->new_shortcut(@layer_sizes)
           -

       AI::FANN->new_from_file($filename)
           -

       $ann->save($filename)
           -

       $ann->run($input)
           "input" is an array with the input values.

           returns an array with the values on the output layer.

             $out = $ann->run([1, 0.6]);
             print "@$out\n";

       $ann->randomize_weights($min_weight, $max_weight)
       $ann->train($input, $desired_output)
           $input and $desired_output are arrays.

       $ann->test($input, $desired_output)
           $input and $desired_output are arrays.

           It returns an array with the values of the output layer.

       $ann->reset_MSE
           -

       $ann->train_on_file($filename, $max_epochs,
       $epochs_between_reports, $desired_error)
           -

       $ann->train_on_data($train_data, $max_epochs,
       $epochs_between_reports, $desired_error)
           $train_data is a AI::FANN::TrainData object.

       $ann->cascadetrain_on_file($filename, $max_neurons,
       $neurons_between_reports, $desired_error)
           -

       $ann->cascadetrain_on_data($train_data, $max_neurons,
       $neurons_between_reports, $desired_error)
           $train_data is a AI::FANN::TrainData object.

       $ann->train_epoch($train_data)
           $train_data is a AI::FANN::TrainData object.

       $ann->print_connections
           -

       $ann->print_parameters
           -

       $ann->cascade_activation_functions()
           returns a list of the activation functions used for
           cascade training.

       $ann->cascade_activation_functions(@activation_functions)
           sets the list of activation function to use for cascade
           training.

       $ann->cascade_activation_steepnesses()
           returns a list of the activation steepnesses used for
           cascade training.

       $ann->cascade_activation_steepnesses(@activation_steepnesses)
           sets the list of activation steepnesses to use for
           cascade training.

       $ann->training_algorithm
       $ann->training_algorithm($training_algorithm)
           -

       $ann->train_error_function
       $ann->train_error_function($error_function)
           -

       $ann->train_stop_function
       $ann->train_stop_function($stop_function)
           -

       $ann->learning_rate
       $ann->learning_rate($rate)
           -

       $ann->learning_momentum
       $ann->learning_momentum($momentun)
           -

       $ann->bit_fail_limit
       $ann->bit_fail_limit($bfl)
           -

       $ann->quickprop_decay
       $ann->quickprop_decay($qpd)
           -

       $ann->quickprop_mu
       $ann->quickprop_mu($qpmu)
           -

       $ann->rprop_increase_factor
       $ann->rprop_increase_factor($factor)
           -

       $ann->rprop_decrease_factor
       $ann->rprop_decrease_factor($factor)
           -

       $ann->rprop_delta_min
       $ann->rprop_delta_min($min)
           -

       $ann->rprop_delta_max
       $ann->rprop_delta_max($max)
           -

       $ann->num_inputs
           -

       $ann->num_outputs
           -

       $ann->total_neurons
           -

       $ann->total_connections
           -

       $ann->MSE
           -

       $ann->bit_fail
           -

       cascade_output_change_fraction
       cascade_output_change_fraction($fraction)
           -

       $ann->cascade_output_stagnation_epochs
       $ann->cascade_output_stagnation_epochs($epochs)
           -

       $ann->cascade_candidate_change_fraction
       $ann->cascade_candidate_change_fraction($fraction)
           -

       $ann->cascade_candidate_stagnation_epochs
       $ann->cascade_candidate_stagnation_epochs($epochs)
           -

       $ann->cascade_weight_multiplier
       $ann->cascade_weight_multiplier($multiplier)
           -

       $ann->cascade_candidate_limit
       $ann->cascade_candidate_limit($limit)
           -

       $ann->cascade_max_out_epochs
       $ann->cascade_max_out_epochs($epochs)
           -

       $ann->cascade_max_cand_epochs
       $ann->cascade_max_cand_epochs($epochs)
           -

       $ann->cascade_num_candidates
           -

       $ann->cascade_num_candidate_groups
       $ann->cascade_num_candidate_groups($groups)
           -

       $ann->neuron_activation_function($layer_index, $neuron_index)
       $ann->neuron_activation_function($layer_index, $neuron_index,
       $activation_function)
           -

       $ann->layer_activation_function($layer_index,
       $activation_function)
           -

       $ann->hidden_activation_function($layer_index,
       $activation_function)
           -

       $ann->output_activation_function($layer_index,
       $activation_function)
           -

       $ann->neuron_activation_steepness($layer_index,
       $neuron_index)
       $ann->neuron_activation_steepness($layer_index,
       $neuron_index, $activation_steepness)
           -

       $ann->layer_activation_steepness($layer_index,
       $activation_steepness)
           -

       $ann->hidden_activation_steepness($layer_index,
       $activation_steepness)
           -

       $ann->output_activation_steepness($layer_index,
       $activation_steepness)
           -

       $ann->num_layers
           returns the number of layers on the ANN

       $ann->layer_num_neurons($layer_index)
           return the number of neurons on layer $layer_index.

       $ann->num_neurons
           return a list with the number of neurons on every layer

   AI::FANN::TrainData
       Wraps C "struct fann_train_data" and provides the following
       method:

       AI::FANN::TrainData->new_from_file($filename)
           -

       AI::FANN::TrainData->new($input1, $output1 [, $input2,
       $output2, ...])
           $inputx and $outputx are arrays with the values of the
           input and output layers.

       AI::FANN::TrainData->new_empty($num_data, $num_inputs,
       $num_outputs)
           returns a new AI::FANN::TrainData object of the sizes
           indicated on the arguments. The initial values of the
           data contained inside the object are random and should be
           set before using the train data object for training an
           ANN.

       $train->data($index)
           returns two arrays with the values of the input and
           output layer respectively for that index.

       $train->data($index, $input, $output)
           $input and $output are two arrays.

           The input and output layers at the index $index are set
           to the values on these arrays.

       $train->shuffle
           -

       $train->scale_input($new_min, $new_max)
           -

       $train->scale_output($new_min, $new_max)
           -

       $train->scale($new_min, $new_max)
           -

       $train->subset($pos, $length)
           -

       $train->num_inputs
           -

       $train->num_outputs
           -

       $train->length
           -

INSTALLATION
       See the README file for instruction on installing this
       module.

BUGS
       Only tested on Linux.

       I/O is not performed through PerlIO because the C library
       doesn't have the required infrastructure to do that.

       Send bug reports to my email address or use the CPAN RT
       system.

SEE ALSO
       FANN homepage at <http://leenissen.dk/fann/index.php>.

COPYRIGHT AND LICENSE
       Copyright (C) 2006-2008 by Salvador Fandin~o
       (sfandino@yahoo.com).

       This Perl module is free software; you can redistribute it
       and/or modify it under the same terms as Perl itself, either
       Perl version 5.8.8 or, at your option, any later version of
       Perl 5 you may have available.

       The Fast Artificial Neural Network Library (FANN) Copyright
       (C) 2003-2006 Steffen Nissen (lukesky@diku.dk) and others.

       Distributed under the GNU Lesser General Public License.



perl v5.14.2                 2009-03-10                AI::FANN(3pm)
Results 1 - 1 of 1
Help - FTP Sites List - Software Dir.
Search over 15 billion files
© 1997-2017 FileWatcher.com