For Assignment 2, you will use hw2.ipynb to create a two-layer neural network from scratch. You will implement all the building blocks of a neural network and use these building blocks to build a neural network that performs image and text classification. By completing this assignment you will:
-
Develop an intuition of the over all structure of a neural network.
-
Write functions (e.g. forward propagation, backward propagation, logistic loss, etc...) that would help you decompose your code and ease the process of building a neural network.
-
Initialize/update parameters according to your desired structure.
For Assignment 2, there are a few explaination questions asked which needs to be answered apart from the coding questions.
Submission needs to be done on Gradescope. Upload the iPython notebook to Google Drive (do not forget to give access). Now, get the share link for the ipython notebook and embed it inside the notebook (you can do this by opening the notebook on the drive using Google Colab). Please generate a PDF from the iPython notebook and upload it to Gradescope. Please make sure that the PDF contains the link to the Google Drive share otherwise the assignment may not be graded.
Assignment 2 is due on March 2 at 11:59pm.
None of the parts of this assignment require use of a machine with a GPU or Pytorch library. You may complete the assignment using your local machine or you may use Google Colaboratory. However, we encourage you to try using Google Colaboratory and get familiar with it as it would be helpful in upcoming assignments.
Credits: The format of this assignment is inspired by the Stanford CS231n assignments. We have borrowed some of their data loading and instructions in our assignment ipython notebook.