This repository contains a Convolutional Neural Network (CNN) implementation for handwritten digit recognition using TensorFlow and Keras.
This project implements a CNN model to recognize handwritten digits with high accuracy. Two different approaches are included:
- MNIST.ipynb: Uses the standard MNIST dataset (60,000 training samples, 10,000 testing samples)
- 47_99accuracy_pro_players.ipynb: Uses custom hand-drawn digits stored in the
new_digits_2folder
The model uses a multi-layer CNN architecture:
Input → Conv2D → ReLU → MaxPooling → Conv2D → ReLU → MaxPooling → Conv2D → ReLU → Flatten → Dense → ReLU → Dense → Softmax
- The model trained on the MNIST dataset achieves high accuracy on standard test data
- The model trained on custom hand-drawn digits achieves 99.47% accuracy, demonstrating excellent generalization capabilities
- MNIST.ipynb: Jupyter notebook implementing CNN with standard MNIST dataset
- 47_99accuracy_pro_players.ipynb: Jupyter notebook implementing CNN with custom hand-drawn digits
- new_digits_2/: Folder containing custom hand-drawn digit images
- Hand_Digit.pdf: Detailed documentation with project insights, methodology, and results analysis
- TensorFlow 2.x
- NumPy
- Matplotlib
- scikit-learn
- Clone this repository
- Install the required dependencies:
pip install tensorflow numpy matplotlib opencv-python scikit-learn seaborn - Run the Jupyter notebooks
For more detailed insights into the project methodology, implementation details, and results analysis, please refer to the Hand_Digit.pdf document included in this repository.
