CENG796 Deep Generative Models (Spring 2020)

Instructors:  Gokberk Cinbis and Emre Akbas
TA (voluntary):  Berkan Demirel
Syllabus:  Link
Office hour:  By appointment, please email.

Important Covid-19 announcement

  • New lectures will be delievered through online means (pre-recorded videos and video conference meetings).
  • Make sure you receive ODTUClass announcements.
  • Guest students: please email us so that we can add you to ODTUclass.
  • Midterm: the new Midterm will be announced soon. It will be done within the Spring'20 semester in an online manner.

Weekly Schedule

Week Lectures

Reading resources

  • Excellent lecture notes by Aditya Grover: Stanford cs236 lecture notes.
  • For deep learning fundamentals and an overview of unsupervised learning: Deep Learning book by Goodfellow et al.
  • Variational inference fundamentals are very nicely explained in Chapter 10 of Bishop's PRML.
  • Also note that many techniques covered in the class have been introduced in recent publications, which are the primary resources for learning more about them.

Paper presentation guidelines

  • Reserve presentation slot by email (first-come, first-served). You may choose from one of the suggested titles or propose an alternative paper.
  • Prepare well for the presentation: you will effectively be the instructor of the class during your presentation. Please prepare your presentation as a short-lecture that focuses on a particular work, rather than a dry summary of the contents of the paper. Therefore, please cover important related work (if not already covered in the class) in your presentation, in order to (i) make the presentation accessible for everyone, and, (ii) properly discuss the strengths and weaknesses of the paper compared to related work.
  • Each student will make one or more presentations. Each presentation should take around 20 minutes (excluding discussions). The expected duration and the expected number of presentations may be altered depending on class size. If a student makes multiple presentations, their grade averages will be taken.
  • Each presenter is required to send us a complete draft of the slides (as a pdf) 2 days before the presentation date, and the final slides before class on the presentation date. Slides will be published on the course webpage.

The following will be used for grading: rubric.

Projects (developer)

Each student (or group) will implement one particular algorithm and contribute to the shared git repository in PyTorch, including documentation and demo in the format of a jupyter notebook. (Details will be provided in class.)
  • No free-form project. Each project is a proper and full-fledged implementation of one or more particular model(s) / paper(s).
  • There will be version-1 and version-2 submissions. First version will be evaluated by the assigned reviewer(s), who will give a written feedback.
  • The final grade will be a weighted average of the grade for the first version and the second version. Both versions will be graded by the instructor after submission of the final version.
  • The developer is expected to submit a complete and near-final version of the project in the first version, and benefit from the reviewer feedback to fix any remaining minor problems in the second version.
  • No code copy-paste is allowed, the submitted code + jupyter notebook should be a genuine implementation of the model. For model-independent utility functions (eg. data loading, etc), external code may be used with proper acknowledgement of the source.
  • Projects will be submitted to a joint git repository. The repository (including all projects) are planned to be made publicly available online at the end of the semester.
  • The minimum and maximum project developer group sizes will be determined within the first few weeks of the semester. Students may or may not be required to work individually.
  • In the last week of classes or during the final exam period, there will project demonstrations. Project demonstration durations and guidelines are to be declared during the semester.

Projects (reviewer)

Each student will be assigned as a peer-reviewer to one or more project(s) developed by the other student(s).
  • The reviewer will be responsible for checking the implementation of the corresponding model and the jupyter notebook. Each reviewer will give a written feedback to the corresponding developer with a list of mistakes and missing points.
  • Reviewer will have at least one week to review and give feedback.
  • For mistakes and shortcomings denoted by the reviewer regarding the full submission material in the first version of a project, only the developer will be penalized. The developer(s) is expected to fix these problems in the second version of the project.
  • For mistakes and shortcomings missed by the reviewer but found by the instructor(s) in the first version, both the developer and the reviewer will be penalized.
  • The reviewer will additionally be evaluated in terms of the quality and coverage of his/her written review.


May cover everything up to that date, including lectures and paper presentations.

   We reserve the right to make changes in the course content.