Dog Breed Classification PyTorch
Summary
Using the dog image dataset, train a CNN that can classify different dog breeds over 133 kinds. Build an app that can detect a human or a dog’s face and classify which dog breed it is closest to.
Outline
- Face Recognition 
- Detect a face (human or dog) using a pre-traiend cv2 module in python and VGG16 in 
torchvision.models 
 - Detect a face (human or dog) using a pre-traiend cv2 module in python and VGG16 in 
 - Creating CNN from scratch 
- Use CNN artchitecture (Conv2d-BatchNorm-ReLU blocks, AvgPool2D transition)
 - Train using crossentropy loss and ADAM optimizer iteration
 
 - Transfer learning with ResNet50 
- Load the ResNet50 model and train against our own dog image dataset
 
 - Combining it together 
- Create one function that takes in a image, detect a face, and print out the closest dog breed.
 
 
Result
CNN from scratch: Accuracy of 13% after 20 epochs (800,000 params) Transfer from ResNet50: Accuracy of 80% after 20 epochs (272,000 trainable params)
Tools
- PyTorch
 
Link Colab Notebook