A neural network built in Java from scratch for recognizing numerical hand signs
The repository consists of three components:
-
ABCDImageNetwork: A four-layer feedforward neural network implemented via backpropagation with configurable settings:
- Training/running mode
- Weight randomization/file input
- Weight file output
- Data file input
- Network layer sizes
- Training parameters:
$\lambda$ ,$E_{max}$ , and$n_{iterations}$
-
imageProcessing: Converted data files for hand sign images.
-
handImages: Raw numerical hand sign images.
This project was created for ATCS: Neural Nets at The Harker School, taught by Dr. Nelson.
Standard Java libraries.
- Edit the control file, which has four arguments:
doTrainNotRun: Whether to train or run (boolean)networkConfigurationFilename: The network configuration filename (string)- This network configuration file contains values for network parameters.
inputSetFilename: The input set filename to run the network on (string)- This input set file in turn contains an ordered list of individual input member files.
targetSetFilename: The target set filename to compare with the network's outputs (string)- This output set file in turn contains an ordered list of individual target member files.
- Run ABCDNetworkTester.java from the terminal with the control filename as the first argument.
- The program will create and run the network based on the provided settings.
- Once finished training/running, the program will print the network specifications and a comparison table of network outputs and target outputs to the console.
- If specified, the network will also save weights to the specified weight output file.
See the repository's control, network configuration, input set, and target set files for examples.