CS236G Generative Adversarial Networks (GANs)

GANs have rapidly emerged as the state-of-the-art technique in realistic image generation. Its applications span realistic image editing that is omnipresent in popular app filters, enabling tumor classification under low data schemes in medicine, and visualizing realistic scenarios of climate change destruction. You'll also get to examine key challenges of GANs today, including reliable evaluation, inherent biases, and training stability. After this course, students should be familiar with GANs and the broader generative models and machine learning contexts in which these models are situated.

Syllabus Piazza Lecture videos (Canvas)

Course Information

  • This quarter (2020-21 Winter), CS236G meets for in-class lecture T/Th 8:00 PM, Zoom.
  • All class communication happens on the CS236G Piazza forum. For private matters, please make a private note visible only to the course instructors. For longer discussions with TAs and to get help in person, we strongly encourage you to come to office hours. If you need to contact us via email, please email individual TAs.
  • The course content and deadlines for all assignments are listed in our syllabus.
  • For general inquiries, please contact cs236g@cs.stanford.edu.

Course Staff

Course Goals

  • Learn and build generative adversarial networks (GANs), from their simplest form to state-of-the-art models.
  • Implement, debug, and train GANs as part of a novel and substantial course project.
  • Gaining familiarity with the latest cutting-edge literature on GANs.
  • Reward risk-taking and creative exploration.

Course Components

  • In class lectures - twice a week on T/Th 8:00 PM (hosted on Zoom).
  • Video lectures, programming assignments, and quizzes on Coursera.
  • The final project

Lecture Schedule

Date Week Title Resources
01/4/2021 1 Introduction & Coursera Slides
Welcome Video
Course Overview Video
Coursera
01/11/2021 2 Coursera & Project Inspo Coursera 1
Coursera 2
Project Inspo
01/18/2021 3 Coursera Coursera
01/25/2021 4 Coursera Coursera
02/01/2021 5 How to Read a Paper Slides
How to Read a Paper Video
02/08/2021 6 Midterm
Gradescope
02/10/2021 6 GANs Project Workshop Notebook 1
Notebook 2
GAN Starter Notebook
AWS Instructions
02/15/2021 7 GANformer Paper
Guest Lecture by Drew A. Hudson (author)
02/17/2021 7 Artbreeder Artbreeder (Joel)
Video
02/22/2021 8 Disentanglement & Interim Project Showcase Disentanglement Video
03/01/2021 9 BigGAN Video
03/08/2021 10 NVIDIA Research & Project Showcase NVIDIA Research Interview

Prerequisites

Students are expected to have the following background:

  • Familiarity with basic programming (CS106B or CS101)
  • Familiarity with basics of deep learning (CS230 or CS221)
  • Familiarity with the probability theory (CS 109 or STATS 116)
  • Familiarity with linear algebra (MATH 51)

Grading

  • 35%: Programming assignments
  • 5%: Midterm
  • 60%: Class project - creativity and equal participation within a group will be rewarded
  • 0%: Attendance
  • Extra credit: Your (or your GAN-generated) Memes. Requirements: Relevant and Appropriate with capital R and A there.

Auditing

All students who are looking to audit the course should make a private post on Piazza. You should receive an invitation to the course’s Canvas and the Coursera course in your Stanford email within 24-48 hours of submitting this form. Make a private piazza post (preferred) or email cs236g@cs.stanford.edu if you did receive get the invitations.

This site was forked from CS230: Deep Learning (https://CS230.stanford.edu).

Previous Course Staff

Course Assistants

Additional Project Mentors