This is an implementation of a simple neural network from scratch in Python with NumPy. It is fully customisable — custom weights and biases can be imported and you can choose how many nodes there are in the hidden layer. For this project, I trained it to be able to recognise handwritten digits with the MNIST database. I used PyGame to let the user draw their handwritten digit, which is run through the trained neural network and the values of the output layer are displayed.
Run main.py to run the game where you can draw on the canvas and the results will be displayed. If you would like to train the network, change the function called to be train_network. You can also edit the file you write the weights and biases to by editing the string containing the file name.
For documentation and screenshots of this project, click here. For a video showcase, click here.