Assignment #3
Flower classification
Overview
- Image classification is a core and fundamental task in computer vision.
- In the assignment, you will implement a multi-class image classifier to
recognize flowers.
- You will design and train a deep convolutional network from scratch to predict the class label of a flower image. This will help you gain experience with network design and get more familiar with PyTorch.
- Please note that you’re not allowed to use a pre-trained model.
Flower Dataset
• The dataset is collected by Alexander Mamaev.
• It contains 4,317 images in 5 classes, with about 800 images per class.
daisy dandelion rose
sunflower tulip
• Your model will be evaluated on the test set using the accuracy metric.
• The train/val/test splits are provided.
Your task
- We have code skeleton for you guys.
- https://colab.research.google.com/drive/1HabXPDoXGGG1buql2gk3ye_9uKfw6zCv
- Design a convolutional neural network to recognize the flowers. You must train your model from scratch.
- 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 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 0 scores!



