This project is a simple neural network built from scratch to recognize handwritten digits from the MNIST dataset. The model is implemented using only NumPy and focuses on understanding the fundamentals of neural networks.
data/
: Contains the dataset used for training and testing.notebooks/
: Jupyter notebook with the main implementation and experiments.scripts/
: Python scripts for training and utility functions.models/
: Directory to save trained model parameters.results/
: Contains results such as plots of training performance.
-
Clone the repository:
git clone https://github.com/Rikhil-Nell/MNIST_digit_reader.git cd MNIST_digit_reader
-
Set up a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` pip install -r requirements.txt
-
Open the Jupyter notebook:
jupyter notebook notebooks/mnist-digit-reader.ipynb
-
Run the cells to train the model and visualize the results.
Here is an example of the accuracy and loss curves over training iterations:
- Implement additional layers and experiment with different architectures.
- Add more sophisticated data preprocessing and augmentation techniques.
- Explore hyperparameter tuning to improve model performance.