/transfer_learning_tensorflow

Transfer Learning with TensorFlow

Primary LanguagePython

Transfer Learning for Dog Breed Classification

I peformed image classification on the Stanford Dogs Dataset. The dataset contains images of 120 breeds of dogs. You can read more about the dataset on this page. You can directly download the Images here.

I used different models to experiment what kind of accuracy is obtainable.

Model Learning Steps Accuracy
Inception-v3 1000 92%
Inception-v3 4000 94%
Resnet 4000 96%
Mobilenet 4000 80%

Requirements

  • Python
  • Tensorflow
  • Tensorhub

Usage

If you would like to test this model out you can use the label_image.py script to do so.

Format:

python label_image.py --graph_data=<whichever_output_graph_learning_rate> --labels=output_labels.txt --input_layer=Placeholder --output_layer=final_result --image=<name_of_image_you_want_to_test>

Example:

python label_image.py --graph_data=output_graph_inception_1000.pb --labels=output_labels.txt --input_layer=Placeholder --output_layer=final_result --image=./test_photos/doberman_2.jpg

This will print out couple dog breed names followed by the likeliness of the picture belonging to that breed of dog.

Of course you can experiment it with any dog picture you would like, but if you want to try it out with some of the existing pictures in the dataset below are some names.

Some of the popular dog breed names that exist in the directory:

  1. Beagle, 2. Bernese Mountain Dog, 3. Bloodhound, 4. Border Collie, 5. Doberman, 6. German Shepherd, 7. Malamute

Here are some less common dog breeds but equally beautiful looking:

  1. Afghan Hound, 2. Giant Schnauzer, 3. Ibizan Hound, 4. Irish Wolfhound, 5. Kuvasz, 6. Vizsla, 7. Weimaraner

I have also included a directory called "test_photos" which includes some random pictures of some dog breeds I grabbed from simple Google image searching if you think that would be easier for you to test it out.

Here's the doberman_2.jpg image:

Here's the output from that:

alt text