Dog Breed Classification

Alioke MichaelAlioke Michael
2 min read

Table of contents

To Classify Different Dog Breeds and identify a particular breed of the Dog. Who's that doggy in the window?, Dogs are incredible. But have you ever been sitting at a cafe or seen a dog walking around the street, or seen a Dog and not known what breed it is? I have. And then someone says, “it's an English Terrier” and you think, how did they know that?, In this project we're going to be using machine learning to help us identify different breeds of dogs.

The data used is from the [Kaggle dog breed identification competition] (https://www.kaggle.com/c/dog-breed- identification/overview). It consists of a collection of 10,000+ labelled images of 120 different dog breeds.

This kind of problem is called multi-class image classification. It's multi-class because we're trying to classify mutliple different breeds of dog. If we were only trying to classify dogs cats, it would be called binary classification (one thing versus another).

Multi-class image classification is an important problem because it's the same kind of technology Tesla uses in their self-driving cars or Airbnb uses in atuomatically adding information to their listings.

Since the most important step in a deep learng problem is getting the data ready (turning it into numbers), that's what we're going to start with.

We're going to go through the following TensorFlow/Deep Learning workflow:

  1. Get data ready (download from Kaggle, store, import).

  2. Prepare the data (preprocessing, the 3 sets, X & y).

  3. Choose and fit/train a model

  4. Evaluating a model (making predictions, comparing them with the ground truth labels).

  5. Improve the model through experimentation (start with 1000 images, make sure it works, increase the number of images).

  6. Save, sharing and reloading your model (once you're happy with the results).

For preprocessing our data, we're going to use TensorFlow 2.X. The whole premise here is to get our data into Tensors (arrays of numbers which can be run on GPUs) and then allow a machine learning model to find patterns between them. For our machine learning model, we're going to be using a pretrained deep learning model from TensorFlow Hub. The process of using a pretrained model and adapting it to your own problem is called transfer learning. We do this because rather than train our own model from scratch (could be timely and expensive), we leverage the patterns of another model which has been trained to classify images.

For the source code visit https://colab.research.google.com/drive/1rSomHBw2F2eDmnwAurz7F-kPZ7KZwmQD

Portofolio https://micahtech1.github.io/

0
Subscribe to my newsletter

Read articles from Alioke Michael directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Alioke Michael
Alioke Michael