Lightweight Neural Network++

Download   Features   Examples   Documentation   Report   JTrainer (Java Interface)   Visual Network Trainer   KLwnn++   Links

Lightweight Neural Network ++ is a free software open source project which provides a class which implements a general feedforward neural network, a class which provides the standard training techniques for neural networks, and a simple gui in tcl/tk for training networks. In a separate package, you can download klwnn++, a graphical user interface using qt libraries (of the KDE project) and libqwt to draw the graphs.

This project was developed for the Neural Networks course at University of Florence, Italy (Università di Firenze).

The network class is a lightweight implementation of a neural network for use in C++ programs. It is intended for use in applications that just happen to need a simple neural network and do not want to use needlessly complex neural network libraries.

The trainer class provides an easy interface for network training, with training set, validation set and certification set. The right way to avoid overfitting is implemented here (saving the net that gives minimum error on validation set).

Reading of input / output couples is managed by an abstract class. You can write a derived class which manages your own file format. We provide support for two textual formats and a binary format for storing input / output pairs

Visit the SourceForge project page, where the project is hosted

The library is written for a GNU/Linux system but it should not be difficult to port it to other operating systems




If you installed our package and have doxygen installed you will find documentation in /usr/doc/lwnnplus-VERSION/ (if the root installation dir is /usr/) both in HTML and LaTeX format


This report is a rather detailed description of the project, of the implementation choices and of the examples. There is as well a little introduction to the theory of feed forward neural networks.


JTrainer is a Java user interface for lwnn++. The functionalities are very similar to visual network trainer but it should be easier to use. The parameter files saved and loaded by JTrainer are compatible with visual network trainer.
Once installed you can start the interface by the command lwnn_jtrainer. JTrainer is only a visual interface to build an XML file that is used to pass the options to lwnn_xmltrain. The graphs are created using Java Analysis Studio while XML parsing was programmed using tinyxml. A screenshot of JTrainer.

Visual Network Trainer

Visual Network Trainer is a simple graphical interface for training a network.
Once installed you can start the interface by the command lwnn_visualtrainer.
This is a screenshot


This is a graphical interface for training a network written with the use of QT libraries.
It depends on libqt and libqwt.
This is a screenshot