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: (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.
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
you will find a test programs in the "bin" directory. Just type
$ cd bin
or for the non FLTKed app
for a FLTKed GUI application
+ Structure editor
+ Training graphs
+ The training algorithms: Conjugate Gradient and the
+ 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
+ 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,
Please, send me any question or feature to firstname.lastname@example.org