Code a basic classifier in pytorch. Prepare a scaffold that will be used for experimentation in future labs.
For this lab, you will submit an ipython notebook via learningsuite. Your notebook must contain your classifier code, and should show various final statistics about it and its performance. You should plot your loss curve, a final confusion matrix, and you must clearly display the total parameter count of your network.
Your notebook will be graded on the following:
For this lab, you will implement a basic pytorch image classifier on a reasonably large dataset.
Your classifier must be a 20 layer Resnet. You may NOT use a built-in or pretrained resnet (ie, from torchhub), because you will need to be able to modify it. However, you are encouraged to use other built-in pytorch blocks, such as batchnorm blocks.
The dataset is the CIFAR-10 dataset. You may use the torchvision.datasets interface to simplify the loading and management of the dataset. While not required for this lab, make sure that you're prepared to implement data augmentation.
You will probably want to use Google colab to host your notebook.
For your loss curve, any reasonable visualization is acceptable.
For your confusion matrix, you may use any reasonable visualization or software package.
You will not be graded on any final accuracies.
You may use any code on the internet to help you, but all submitted code must be your own work.
MAJOR CONSIDERATION: we will be working with this classifier in future labs by adjusting its hyper parameters. In particular, you should make it easy to: