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

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

Downloads last month
25
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Space using WhiteDevilOP/cifar10-cnn-image-classifier 1