$30
Overview
• In assignment #3, you implemented a multi-class image classifier to recognize flowers.
• You will design and train a deep convolutional network based on Assignment #3 with extra data and the self-training method to predict the class label of a flower image.
• Please note that you’re still not allowed to use a pre-trained model.
Self-training
• Given: labelled training data & unlabeled training data
• Train the model with labelled data.
• Repeat:
• Predict the unlabeled data with the model to get pseudo labels.
• Remove the data with high confidence level from the unlabeled dataset and
add them to the labelled dataset.
• Finetune with labeled dataset.
• End: Repeat until all the unlabeled data with the pseudo labels reach
certain confidence level, or until there’re no unlabeled data left.
Flower Dataset
• The dataset is the same as Assignment #3
daisy dandelion rose sunflower tulip
• The train(labelled and unlabeled)/val/test splits are provided.
• Your model will be evaluated on the test set using the accuracy metric.
Assignment #3-2 Dataset
The same as assignment #3
The new unlabeled training data for self-training
Your task
• We have code skeleton for you guys.
• https://colab.research.google.com/drive/13QW99mhNFIroKCPoDZwOZ6L56pwuaQIz
• Design a convolutional neural network to recognize the flowers. You must train your model based on your assignment #3.
• The images provided are of different resolutions. You’ll need to resize the images into a fixed size of your own choice.
• To get a high accuracy, you’ll need to experiment with different filter sizes, different number of layers, and other design principles discussed in class to figure out a network architecture that works best.
• You’ll also need to try data augmentation, dropout, batch normalization as well as different optimizers and other tricks to boost performance.
• Again, you cannot use any pre-trained model in this part.
Things you cannot do
• You cannot submit results from Assignment #3.
• You cannot submit results predicted by others.
• You cannot copy trained models from others.
• You cannot copy code from others, internet, GitHub …
• You cannot collect more images to train your model in order to boost
performance.
• You cannot use the weights of pre-trained model.
Any violation will result in no bonus points!