Skip to content

Classify dogs on Stanford Dogs Dataset through fine-tunning on modified ResNet50

Notifications You must be signed in to change notification settings

yasin6606/stanford_dogs_classify

Repository files navigation

Stanford Dogs Classifier

Overview

The Stanford Dogs Classifier is a computer vision project aimed at classifying images of dogs into 120 distinct breeds using a modified ResNet50 architecture. This project employs transfer learning techniques to fine-tune a pre-trained model on a custom dataset of 20,000 samples. The model is implemented using PyTorch and optimized for GPU usage.

Dataset

Download Stanford Dogs Classifier Dataset

Custom Dataset:

The dataset contains 20,000 samples across 120 distinct breeds of dogs. A custom dataset implementation reads samples from directories and prepares them based on three .mat files that define the annotations, as well as the training and test sets. Additionally, appropriate transformations are applied to the samples to enhance the dataset’s suitability for training.

Architecture:

A custom-modified ResNet50 architecture has been implemented to adapt the output layer for classification across 120 distinct dog breeds. The fine-tuning method is employed to specifically train only the output layer, which comprises 245,880 parameters. This approach allows for efficient training while leveraging the pre-trained features of the ResNet50 model.

Result:

After training, the model achieved the following performance on 8580 Test samples:

  • Test Cross-Entropy Loss: 0.38
  • Test Accuracy: 88.76%

GPU Information:

  • NVIDIA GEFORCE GTX-960M
  • 4GB Memory
  • 640 CUDA Cores

Contact:

Thank you for your interest in this project! If you have any questions or suggestions, feel free to reach out.

Email: yassingourkani@outlook.com

LinkedIn: Yasin LinkedIn

About

Classify dogs on Stanford Dogs Dataset through fine-tunning on modified ResNet50

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published