A complete end-to-end Convolutional Neural Network (CNN) project using TensorFlow and Keras to classify handwritten digits from the MNIST dataset. This project is beginner-friendly and ideal for learning image classification fundamentals with deep learning.
- 70,000 grayscale images of handwritten digits (0โ9)
- Image size: 28ร28 pixels
- Split: 60,000 for training and 10,000 for testing
- Built-in dataset in TensorFlow
- โ Data loading and exploration
- ๐ผ๏ธ Sample visualization and digit distribution
- ๐ง Preprocessing with normalization and reshaping
- ๐๏ธ CNN model building using Keras Sequential API
- ๐ Training and validation tracking
- ๐ฎ Model evaluation and predictions
- ๐ Confusion matrix and per-class analysis
- ๐ฏ Random test predictions
- ๐พ Ready for further fine-tuning or saving the model
- Final Test Accuracy: ~99%
- Uses dropout regularization to prevent overfitting
- Visualizes training/validation accuracy and loss
- Python โฅ 3.7
- TensorFlow โฅ 2.x
- NumPy, Matplotlib, Seaborn, scikit-learn
Install dependencies:
pip install tensorflow numpy matplotlib seaborn scikit-learn
๐ง Learnings Understanding CNN architecture
- Visualizing model performance
- Working with real image data
- Evaluating classification models