Dog Breed Classifier

Using CNNs

Logo for the project

This project was part of my coursework for the Udacity Machine Learning Engineer nanodegree. This was also the capstone project.

In this project, I had to use convolutional neural networks to process user-supplied images of dogs and classify their breeds. Dog breed classification is an open issue, mainly due to minimal variation between some breeds, as well as breeds which are different only due to colour.

The code made use of cross-entropy loss. 2 different models were built - one trained from scratch, and another which used transfer learning to build on a ResNet50 base model. During training, all images were normalized to 224 x 224 pixels and transformed using a predefined Pytorch transform. The transfer learning model eventually achieved an accuracy of 85%.

Github Repository