Fine-grained image classification with ResNet50V2 transfer learning.
Explore the notebook · Project report · Execution report
This notebook builds an end-to-end dog-breed classification pipeline on the Kaggle Dog Breed Identification dataset. It prepares image and label data, augments the training set, uses an ImageNet-pretrained ResNet50V2 backbone, trains a custom classification head, and runs inference on unseen dog images.
| Experiment | Configuration |
|---|---|
| Dataset | Kaggle Dog Breed Identification — 120 source labels |
| Training scope | 60 selected breed classes |
| Input | 224 × 224 RGB images |
| Model | Frozen ResNet50V2 backbone + batch normalization + dense head |
| Split | 80% training / 20% validation |
| Training | RMSprop, batch size 64, 20 epochs |
| Best recorded validation accuracy | 80.66% |
Kaggle images + labels
↓
Resize and ResNet preprocessing
↓
Train/validation split + augmentation
↓
ResNet50V2 feature extractor
↓
Classification head and training
↓
Breed prediction for a new image
-
Clone the repository and create a Python environment.
-
Install the dependencies:
pip install -r requirements.txt
-
Configure the Kaggle API locally. Never commit
kaggle.json. -
Open
dog_breed_detection.ipynbin Jupyter or Google Colab and run the cells in order.
The trained model and downloaded dataset are intentionally excluded from version control because they are generated artifacts.
.
├── dog_breed_detection.ipynb # data preparation, training and inference
├── test images/ # small inputs used for inference checks
├── docs/assets/ # README visuals and clean prediction crops
├── requirements.txt
└── README.md
Built by Rahul Tripathi · Portfolio · LinkedIn



