This is a neural network I made and trained from scratch for the purpose of recognizing hand drawn digits from the mnist image dataset.
I did not use any machine learning libraries in the creation of this network (PyTorch, Tensorflow, etc.).
There are 2 files included in the repo: train.ipynb and test.ipynb
train.ipynb is the code used to train the model, but the code is mostly the same as test.ipynb
test.ipynb is for testing the model (THIS IS THE FILE YOU PROBABLY ARE LOOKING FOR).
Layer 1 is composed of 784 neurons because each input image is 28x28 pixels (a total of 784 pixels to be used as input)
The size of layers 2-3 are chosed arbitrarily
Layer 4 is composed of 10 neurons to represent all possible outputs (digits 0-9)
The network backpropagates through stochastic gradient descent
Resources that helped me:
3Blue1Brown's Neural Network Playlist
3Blue1Brown's Neural Network Articles
Neural Networks and Deep Learning by Michael Nielson
colah's blog post on Backpropagation