This is a neural network trained to predict images of the MNIST database. It's written in python without making use of ML libraries directly, using Apple's MLX to accelerate matrix computations with the GPU. This makes the scripts very fast on Apple Silicon machines since MLX makes great use of the SoC shared memory and lazy evaluation for efficiency. The code is commented in detail and quite simple to understand with basic understanding of neural networks.
The network is structured to use 4 hidden layers of size 256x256. For activation of hidden layers ReLU is used and loss is calculated with cross-entropy. For optimization Adam is used (check the references section).
To run the scripts you first need to download the dataset and the dependencies with
./data.sh
pip install -r requirements.txtAfter that you can train the model by running the train.py script. To test the model you can run test.py instead. Accuracy should be around 97%.