dog-breed-classifier
dog-breed-classifier copied to clipboard
Udacity (Project 2) Dog Breed Classifier with PyTorch.
Dog Breed Classifier in PyTorch
This is a repo for the Dog Breed Classifier Project in Udacity Nanodegree
It is implemented by using PyTorch library.
Udacity's original repo is here
Project Overview
Welcome to the Convolutional Neural Networks (CNN) project in the AI Nanodegree! In this project, you will learn how to build a pipeline that can be used within a web or mobile app to process real-world, user-supplied images. Given an image of a dog, your algorithm will identify an estimate of the canine’s breed. If supplied an image of a human, the code will identify the resembling dog breed.
Along with exploring state-of-the-art CNN models for classification and localization, you will make important design decisions about the user experience for your app. Our goal is that by completing this lab, you understand the challenges involved in piecing together a series of models designed to perform various tasks in a data processing pipeline. Each model has its strengths and weaknesses, and engineering a real-world application often involves solving many problems without a perfect answer. Your imperfect solution will nonetheless create a fun user experience!
Import Datasets
- Download the dog dataset
- Download the human_dataset
CNN Structures (Building a model on my own)
(conv1): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))
activation: relu
(pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
activation: relu
(conv2): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))
activation: relu
(pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
(conv3): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
(pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
(dropout): Dropout(p=0.3)
(fc1): Linear(in_features=6272, out_features=500, bias=True)
(dropout): Dropout(p=0.3)
(fc2): Linear(in_features=500, out_features=133, bias=True)
Accuracy has been achieved up to 16% with 20 epochs
Transfer Learnings
Used Resnet50 for transfer learnings
Accuracy has been achieved up to 81% with 30 epochs