This project implements a Convolutional Neural Network (CNN) to classify handwritten digits from the MNIST dataset. The CNN model achieves high accuracy by using multiple convolutional and pooling layers followed by fully connected layers.
The MNIST dataset is a large database of handwritten digits that is commonly used for training various image processing systems. It includes 60,000 training images and 10,000 test images, each of size 28x28 pixels.
The CNN model consists of the following layers:
- Input Layer: 28x28 grayscale image.
- Convolutional Layer 1: 32 filters, kernel size 3x3, ReLU activation.
- Max Pooling Layer 1: Pool size 2x2.
- Convolutional Layer 2: 64 filters, kernel size 3x3, ReLU activation.
- Max Pooling Layer 2: Pool size 2x2.
- Flatten Layer: Flatten the 2D matrix into a 1D vector.
- Fully Connected Layer 1: 128 units, ReLU activation.
- Dropout Layer: 0.5 dropout rate to prevent overfitting.
- Output Layer: 10 units (one for each digit), Softmax activation.
The CNN model achieves over 99% accuracy on the test dataset. Detailed results and visualizations can be found in the notebooks/MNIST_CNN.ipynb notebook.
This project is licensed under the MIT License. See the LICENSE file for details.