The purpose of this assignment is to introduce you to deep learning. Specifically, the assignment consists of three parts: In the first part, you will implement various PyTorch deep learning layers using Numpy; in part two, you will experiment with different hyper-parameters on a image classification task and find the best hyper-parameters; lastly, you will investigate a state-of-the-art neural architecture from the PyTorch model zoo.

The assignment

Since we will be experimenting with some cutting edge models, to avoid your need to install dependencies, we will be using Google Colab exclusively for this assignment.

Instructions to kick start the assignment:

  1. Download the assignment package
  2. Unzip
  3. Open Google Colab here (
  4. Click "Upload" and upload the file deep_learning.ipynb.
  5. Click on the "folder-like" icon on the left and click "Upload"
  6. Add the files (, birb.jpg) to colab.


Hand in your Jupyter Notebook. You do not need to hand in a separate PDF writeup for this assignment.