The Artificial Neural Network Architecture (ANNA)

ANNA:  (Artificial Neural Network Architecture) is a Back propagation neural network C++ class developed thinking in a good matching class to the FLTK library.

BP-ANNA 1.9.1 24-11-2011

what's ANNA?

BP-ANNA: (Artificial Neural Network Architecture) is a Back propagation neural network class developed to fit the FLTK GUI library. The training algorithms include the Step Descend, Conjugate Gradient and the Levenberg - Marquardt. The distribution include the source code and a demo for Linux systems. The structure is very flexible and you can change the number of inputs, number of layers, number of neurons per layer and the outputs in a simple way. There is included a very nice structure editor, so you can visualize the neuronal network structure. It is distributed under the GNU GPL's, or FLTK licenses.

The input data is a very simply matrix in a plain text file format, so you just write your data in the same way. The output are taken from the last column toward the first. So if the matrix has four columns you can take as much the last three ones as outputs, leaving the others as inputs.

Download BP-ANNA

ANNA screen shots (old version) 

How to Compile it:

Copy the compress file wherever you want to compile and untar it

$ tar -xvzf bpanna-1.9.1.tar.gz
$ cd bpanna
$ make

you will find a test programs in the "bin" directory. Just type

$ cd bin
$ ./bpanna

or for the non FLTKed app

$ ./fl_bpann

for a FLTKed GUI application


 Functionalities of the graphic interface:

+ Structure editor

+ Training graphs

+ The training algorithms: Conjugate Gradient and the
    Levenberg-Marquardt

 + Multiple outputs

 + Small tutorial of the calculations of the Jacobian matrix for different neural networks. It is still in very early stage. Therefore, all comments and corrections are very welcome.

 Jacobian_ann.pdf. Version October 15, 2009

Some fixed problems:

+ Problems with Table and Cartesian were fixed

+ Fixed an error of the scaling output function

+ More robust lecture of data file.

The input data is a very simply matrix in a plain text format file, so you just need to write your own data in the same way, the outputs are counted from the last column to the first, so if the matrix has four columns you can take as much the last three ones as outputs, because you have to leave some for input.

Ok, I hope it will help you,


Flattr this

Thanks, Edmanuel

Please, send me any question or feature to eetorres@gmail.com