#!/usr/bin/env python # coding: utf-8 # # Project 2 # ## Image Classification with CNN # ------------------------------- # # ## 1. Direct prediction # * Download the dataset birds from http://www-cvr.ai.uiuc.edu/ponce_grp/data/. # * Use [Keras](https://keras.io/) and a CNN from Keras [Applications](https://keras.io/applications/) pretrained on ImageNet, to classify the images in the birds dataset. Construct a confusion matrix that relates the bird classes with the 10 most frequent classes from ImageNet predicted by the model. # * Discuss the results. # # ## 2. Transfer learning # * Use the pre-trained CNN model as a feature extractor. Create a new model that replaces the top part of the pretrained CNN with two layers of 256 and 6 neurons respectively. # * Train the model with the training images from the bird dataset. # * Evaluate the performance over the test dataset reporting the results in a confusion matrix. Discuss the results. # # ## 3. Fine tuning # * Repeat the experiment from the last question, but this time allow all the layers to be trained. # * Compare and discuss the results. # In[ ]: