# Jack Barnard - CLI Neural Networks [GitHub]

Date Created: 2026-10-23
Last Modified: 2026-10-29

This project is part of a series of "mini-projects" within the ELEC2300 module at the Unversity of Southampton. The objective was to create a command-line interface (CLI) application in C++ that implements a simple neural netwrok that could "learn" to be a 4-bit deocder, a very simple task.

I approached the implementation by first building a class called Matrix that could handle most of the "useful" matrix operations using overloaded operators where appropriate. I then built a class called NeuralNetwork that could handle the forward and backward propagation of a simple neural network with one hidden layer. The network was trained using stochastic gradient descent and the mean squared error loss function.

Once this was complete, and tested. I continued to build a more useful application the could identify different items of clothes from a datatset of greyscale images. The dataset was preprocessed to be 28x28 pixels and the images were flattened into a 784-dimensional vector. The network was trained using stochastic gradient descent and the mean squared error loss function.

Finally, I was able to create a functional CLI application that could demonstrate the capabilities of the neural network in a simple, user-friendly interface.