Classifying Flowers using Transfer Learning in Keras
1- Download a small flower dataset (http://download.tensorflow.org/example_images/flower_photos.tgz). This dataset has 5 classes (Daisy, Dandelion, Rese, Sunflower, and Tulip). Images for each class are stored in its own folder.
2- The images have different dimensions. Resize all of them to 150x150.
3- Split images to 75-25% for training and test. Make sure you have the same distribution of flower types between train and test datasets.
4- Use a VGG16 model (pre-trained on ImageNet)
5- Remove the top layers (fully connected layers)
6- Add your own fully connected layers (one with 256 nodes using ‘relu’ activation and output layer with 5 nodes and ‘softmax’ activation)
7- First, freeze all layers of VGG16, train (fine-tune) and evaluate the model. You need to pick the right hyper-parameters for your training (try with different ones)
8- Second, unfreeze the last block of VGG16 (block5), re-train and evaluate the model
9- Unfreeze all the layers and try again.
10- Comparison of the accuracy in all the cases . Which one is better and why?