libF2N2 is an assortment of compatible feedforward neural network classes implemented in multiple languages, all capable of saving and loading neural network weights to the same file format.
Imagine you have to write a PHP script for a forum system which analyses uploaded user avatars for sexually explicit imagery or otherwise inappropriate content. A useful way would be to implement a neural network, but you would not only have to code and debug one in PHP; you would have to train it with thousands of samples and thus be hampered by PHP's slowness and maximum execution time.
Enter libF2N2. Decide on a neural network structure, include the F2N2 library, and initialize a working neural network in moments. With your resource of thousands of images, some marked as inappropriate and some as acceptable, you rapidly train your network by running a high-speed C++ program using libF2N2 against these samples. When done, your compiled program saves the weights and biases of the trained neural network to a text file, and you then instruct your PHP script to create a neural network of identical structure and load the weights prepared by your C++ program - and your PHP neural network is trained.
Okay, so maybe it's not so simple. You need to understand the basics of neural networks. But if implementing backpropagation and neural networks gives you headaches, libF2N2 might just be that cure.
- Classes for C++ and PHP (if you know another object-oriented language you're welcome to help port libF2N2!)
- Save and load neural network weights and biases to a common format
- Multilayer perceptron neural network
- Backpropagation training with momentum
- Sigmoidal activation function
- Implements Gaussian mutation function for use in neuroevolution
- Fast and lightweight design
- Easily modified or extended
- Licensed under the GNU Lesser General Public License (LGPL)
Main changes:
- C++ and PHP implementations split into different packages.
- Constructor API modified.
- Mutation function changed to Gaussian mutation.
- C++ implementation split up into .cpp and .h files