Back to projects

Dog Breed Classification CNN

Transfer learning pipeline for 133-class image classification with a Streamlit demo.

PythonKeras/TensorFlowStreamlitTransfer Learning
Dog Breed Classification CNN
A practical, end-to-end ML project: train a model, validate it, then ship an interactive UI that people can actually use.
Dog Breed Classification CNN screenshot 1 of 3

Architecture overview

CNN pipeline: data loading → augmentation → transfer learning (MobileNetV2/EfficientNet) → prediction → Streamlit UI for image uploads.

Key technical decisions

  • Transfer learning to start from strong pretrained visual features rather than training from scratch.
  • Streamlit to deploy a usable demo quickly without heavy web boilerplate.
  • Iterative tuning of augmentation + fine-tuning boundaries to balance bias/variance in a high-class-count setup.

Challenges & solutions

133 breeds means small per-class sample sizes and a strong overfitting risk. The project focuses on augmentation strategy and careful fine-tuning so the model generalizes instead of memorizing class artifacts.

Results / impact

End-to-end pipeline from training to local deployment, documented on Hashnode (Part 2 of the series; Part 3 benchmarks PyTorch).

What I learned

How to turn an experiment into a reproducible workflow and a demo surface, and how to reason about generalization in high-class-count classification.

GitHubBlog series
KRT