Jo Dene Neural Network library (JDNN)

The library is distributed under the Apache license. The zip file containing the source code the build.xml and license for JDNN is available. Documentation is also available. The current version is 1.0 alpha as of 09/02/04. for a current status, view the change log for detailed status on JDNN. At this point the only todo is to add another error calculator useful for classification problems and documentation.

For release 1.0 I am developing the list of supported features. In addition to basic neural network functions, I am including some support classes to facilitate data reading, trained network storage etc. The following list is not final, exhaustive or binding. Please contact me if there are any other features you would like to see.

The release progression will be an alpha release of the 1.0 codebase, during which there will be more rigorous unit testing. Then there will be at least one beta where performance considerations will be addressed.

  1. Basic neural networks The 1.0 release should be able to construct a variety of feed-forward (non-recursive) networks trained by back-propagation. The networks should be able to train on a variety of data sets, providing useful information on error and training difficulty.
  2. Support for execution and training 1.0 should also have support classes for executing, saving and training networks. Trained networks can be saved and retrieved for future execution.
  3. Data support The ability to read from a comma delimited file and a JDBC source, given an SQL query. Also, the ability to save and retrieve data readers to read new data from the same source
  4. Organizational support A vault mechanism to store trained networks, data sets, input data, etc. These are stored as Java serialized objects. Currently I can store networks and data sets. Need to add input and output.
  5. Documentation Documentation should cover the following:
    • Reading and translating data to a usable format
    • Saving, retrieving maniuplating training data and input data
    • Constructing networks with various topologies.
    • Configuring training of networks, including custom epoch events.
    • Evaulating and saving trained networks.