After long hours of wathcing videos and reading notes at CS231n, I was able to implement the solutions to the three assignments. The second assignment was by the far the hardest and the most rewarding.
The course is really really good, with low-level assignments(backpropagation, convolution, batch normalization) and high-level materials and assignments(PyTorch, GAN, Saliency Maps). For the training, I mostly used a VM from the course on Google Compute Engine with CPUs. I used Google Colab GPU for the Q5 of the assignment2.
- Q1: k-Nearest Neighbor classifier
- Q2: Training a Support Vector Machine
- Q3: Implement a Softmax classifier
- Q4: Two-Layer Neural Network
- Q5: Higher Level Representations: Image Features
- Q1: Fully-connected Neural Network
- Q2: Batch Normalization
- Q3: Dropout
- Q4: Convolutional Networks
- Q5: Image Classification with PyTorch on CIFAR-10
- Q1: Image Captioning with Vanilla RNNs
- Q2: Image Captioning with LSTMs
- Q3: Network Visualization: Saliency maps, Class Visualization, and Fooling Images
- Q4: Style Transfer
- Q5: Generative Adversarial Networks
All the props go to the CS231n team (Justin Johnson, Serena Yeung and the TAs) that delivered the course and the assignments(also for making the videos and assignments available for free). Thanks to Haofei Xu for sharing her solutions online, they have been helpful during these assignments, specially in assignment 2.