Skip to content

Commit 9e72fe7

Browse files
committed
Add assignment 3 page
1 parent 7edd770 commit 9e72fe7

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

assignments/2024/assignment3.md

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
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.
3.91 MB
Binary file not shown.

0 commit comments

Comments
 (0)