WhiteDevilOP's picture
Update README.md
e4896e2 verified
---
license: mit
language:
- en
metrics:
- accuracy
tags:
- CNN
- NeuralNetwork
---
# CIFAR-10 CNN Image Classifier
A Convolutional Neural Network (CNN) built **from scratch** using **TensorFlow/Keras** to classify images from the CIFAR-10 dataset into 10 object categories.
This project focuses on **understanding CNN design, training stability, regularization, and evaluation**, without using pretrained models or transfer learning.
---
## 🚀 Project Overview
This project demonstrates:
- CNN architecture design from first principles
- Training and evaluation on the CIFAR-10 dataset
- Overfitting detection and mitigation
- Confusion matrix–based error analysis
- Clean, modular ML project structure
The goal is to gain **hands-on understanding of deep learning fundamentals**, rather than maximizing benchmark scores.
---
## 🧠 Dataset
**CIFAR-10**
- 60,000 color images (32×32)
- 10 classes:
- airplane, automobile, bird, cat, deer
- dog, frog, horse, ship, truck
- 50,000 training images
- 10,000 test images
---
## 🏗️ Model Architecture
- **3 Convolutional blocks**
- Conv2D → Batch Normalization → ReLU → MaxPooling
- **Classifier**
- Dense(256) → Dropout(0.5)
- Dense(128) → Dropout(0.3)
- Dense(10 logits)
- Loss handled using `SparseCategoricalCrossentropy(from_logits=True)`
**Total parameters:** ~1.3M
---
## ⚙️ Training Strategy
- Input normalization
- Data augmentation (horizontal flip, rotation, zoom)
- Batch Normalization for stable training
- Dropout for regularization
- Early stopping to prevent overfitting
Training was stopped automatically once validation performance stopped improving.
---
## 📊 Evaluation & Results
- **Best validation accuracy:** ~67%
- Small train–validation gap → good generalization
- Performance analyzed using a **confusion matrix**
Key observations:
- Strong performance on classes like automobile, frog, ship, and truck
- Expected confusion between visually similar classes (cat ↔ dog, deer ↔ horse)
- Confusion matrix used as a diagnostic tool rather than accuracy alone
---
## 🛠️ Installation
```bash
git clone https://github.com/revanthreddy0906/cifar10-cnn-image-classifier.git
cd cifar10-cnn-image-classifier
pip install -r requirements.txt
```
---
**📌 Key Learnings**
--------------------
- CNNs outperform dense networks for image data
- Correct data pipelines are critical for stable training
- Overfitting must be diagnosed using validation metrics
- Confusion matrices provide deeper insight than accuracy alone
- Regularization and early stopping are essential for generalization
* * * * *
**📈 Future Improvements**
--------------------------
- Stronger data augmentation (MixUp / CutOut)
- Learning rate scheduling
- Residual connections (ResNet-style blocks)
- Transfer learning with pretrained backbones
- Per-class precision and recall analysis