This assignment is due on April 25 at 11:59pm PST.

Starter code containing Colab notebooks can be downloaded here.

Setup


Note. Ensure you are periodically saving your notebook (File -> Save) so that you don’t lose your progress if you step away from the assignment and the Colab VM disconnects.

Once you have completed all Colab notebooks except collect_submission.ipynb, proceed to the submission instructions.

Goals

In this assignment you will practice writing backpropagation code, and training Neural Networks and Convolutional Neural Networks. The goals of this assignment are as follows:

Q1: Two-Layer Neural Network

The notebook two_layer_net.ipynb will walk you through the implementation of a two-layer neural network classifier.

Q2: Higher Level Representations: Image Features

The notebook features.ipynb will examine the improvements gained by using higher-level representations as opposed to using raw pixel values.

Q3: Fully-connected Neural Network

The notebook FullyConnectedNets.ipynb will introduce you to our modular layer design, and then use those layers to implement fully-connected networks of arbitrary depth. To optimize these models you will implement several popular update rules.

Submitting your work

Important. Please make sure that the submitted notebooks have been run and the cell outputs are visible.

1. Open collect_submission.ipynb in Colab and execute the notebook cells.

This notebook/script will generate a zip file of your code (.py and .ipynb) called a2_code_submission.zip.

If your submission for this step was successful, you should see the following display message:

### Done! Please submit a2_code_submission.zip to Gradescope. ###

2. Submit the zip file to Gradescope.

Remember to download a2_code_submission.zip locally before submitting to Gradescope.

3. Ensure that you have answered, on Gradescope, the inline questions scattered throughout the notebooks.