|
| 1 | +--- |
| 2 | +layout: page |
| 3 | +title: Assignment 3 |
| 4 | +mathjax: true |
| 5 | +permalink: /assignments2024/assignment3/ |
| 6 | +--- |
| 7 | + |
| 8 | +<span style="color:red">This assignment is due on **Tuesday, May 30 2023** at 11:59pm PST.</span> |
| 9 | + |
| 10 | +Starter code containing Colab notebooks can be [downloaded here]({{site.hw_3_colab}}). |
| 11 | + |
| 12 | +- [Setup](#setup) |
| 13 | +- [Goals](#goals) |
| 14 | +- [Q1: Network Visualization: Saliency Maps, Class Visualization, and Fooling Images](#q1-network-visualization-saliency-maps-class-visualization-and-fooling-images) |
| 15 | +- [Q2: Image Captioning with Vanilla RNNs](#q2-image-captioning-with-vanilla-rnns) |
| 16 | +- [Q3: Image Captioning with Transformers](#q3-image-captioning-with-transformers) |
| 17 | +- [Q4: Generative Adversarial Networks](#q4-generative-adversarial-networks) |
| 18 | +- [Q5: Self-Supervised Learning for Image Classification](#q5-self-supervised-learning-for-image-classification) |
| 19 | +- [Extra Credit: Image Captioning with LSTMs](#extra-credit-image-captioning-with-lstms-5-points) |
| 20 | +- [Submitting your work](#submitting-your-work) |
| 21 | + |
| 22 | +### Setup |
| 23 | + |
| 24 | +Please familiarize yourself with the [recommended workflow]({{site.baseurl}}/setup-instructions/#working-remotely-on-google-colaboratory) before starting the assignment. You should also watch the Colab walkthrough tutorial below. |
| 25 | + |
| 26 | +<iframe style="display: block; margin: auto;" width="560" height="315" src="https://www.youtube.com/embed/DsGd2e9JNH4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> |
| 27 | + |
| 28 | +**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. |
| 29 | + |
| 30 | +While we don't officially support local development, we've added a <b>requirements.txt</b> file that you can use to setup a virtual env. |
| 31 | + |
| 32 | +Once you have completed all Colab notebooks **except `collect_submission.ipynb`**, proceed to the [submission instructions](#submitting-your-work). |
| 33 | + |
| 34 | +### Goals |
| 35 | + |
| 36 | +In this assignment, you will implement language networks and apply them to image captioning on the COCO dataset. Then you will train a Generative Adversarial Network to generate images that look like a training dataset. Finally, you will be introduced to self-supervised learning to automatically learn the visual representations of an unlabeled dataset. |
| 37 | + |
| 38 | +The goals of this assignment are as follows: |
| 39 | + |
| 40 | +- Understand and implement RNN and Transformer networks. Combine them with CNN networks for image captioning. |
| 41 | +- Understand how to train and implement a Generative Adversarial Network (GAN) to produce images that resemble samples from a dataset. |
| 42 | +- Understand how to leverage self-supervised learning techniques to help with image classification tasks. |
| 43 | + |
| 44 | +**You will use PyTorch for the majority of this homework.** |
| 45 | + |
| 46 | +### Q1: Network Visualization: Saliency Maps, Class Visualization, and Fooling Images |
| 47 | + |
| 48 | +The notebook `Network_Visualization.ipynb` will introduce the pretrained SqueezeNet model, compute gradients with respect to images, and use them to produce saliency maps and fooling images. |
| 49 | + |
| 50 | +### Q2: Image Captioning with Vanilla RNNs |
| 51 | + |
| 52 | +The notebook `RNN_Captioning.ipynb` will walk you through the implementation of vanilla recurrent neural networks and apply them to image captioning on COCO. |
| 53 | + |
| 54 | +### Q3: Image Captioning with Transformers |
| 55 | + |
| 56 | +The notebook `Transformer_Captioning.ipynb` will walk you through the implementation of a Transformer model and apply it to image captioning on COCO. |
| 57 | + |
| 58 | +### Q4: Generative Adversarial Networks |
| 59 | + |
| 60 | +In the notebook `Generative_Adversarial_Networks.ipynb` you will learn how to generate images that match a training dataset and use these models to improve classifier performance when training on a large amount of unlabeled data and a small amount of labeled data. **When first opening the notebook, go to `Runtime > Change runtime type` and set `Hardware accelerator` to `GPU`.** |
| 61 | + |
| 62 | +### Q5: Self-Supervised Learning for Image Classification |
| 63 | + |
| 64 | +In the notebook `Self_Supervised_Learning.ipynb`, you will learn how to leverage self-supervised pretraining to obtain better performance on image classification tasks. **When first opening the notebook, go to `Runtime > Change runtime type` and set `Hardware accelerator` to `GPU`.** |
| 65 | + |
| 66 | +### Extra Credit: Image Captioning with LSTMs |
| 67 | + |
| 68 | +The notebook `LSTM_Captioning.ipynb` will walk you through the implementation of Long-Short Term Memory (LSTM) RNNs and apply them to image captioning on COCO. |
| 69 | + |
| 70 | +### Submitting your work |
| 71 | + |
| 72 | +**Important**. Please make sure that the submitted notebooks have been run and the cell outputs are visible. |
| 73 | + |
| 74 | +Once you have completed all notebooks and filled out the necessary code, you need to follow the below instructions to submit your work: |
| 75 | + |
| 76 | +**1.** Open `collect_submission.ipynb` in Colab and execute the notebook cells. |
| 77 | + |
| 78 | +This notebook/script will: |
| 79 | + |
| 80 | +* Generate a zip file of your code (`.py` and `.ipynb`) called `a3_code_submission.zip`. |
| 81 | +* Convert all notebooks into a single PDF file called `a3_inline_submission.pdf`. |
| 82 | + |
| 83 | +If your submission for this step was successful, you should see the following display message: |
| 84 | + |
| 85 | +`### Done! Please submit a3_code_submission.zip and a3_inline_submission.pdf to Gradescope. ###` |
| 86 | + |
| 87 | +**2.** Submit the PDF and the zip file to Gradescope. |
| 88 | + |
| 89 | +Remember to download `a3_code_submission.zip` and `a3_inline_submission.pdf` locally before submitting to Gradescope. |
0 commit comments