Distributed Computing
ETH Zurich

Hands-On Deep Learning (FS 2024)

This lab introduces deep learning through the PyTorch framework in a series of hands-on exercises, exploring topics in computer vision, natural language processing, audio processing, graph neural networks, and representation learning.

In this lab, you will learn common as well as cutting-edge neural architectures. You will learn about various network structures as building blocks, and how to use them to solve introductory examples and course challenges. After attending this course, you will be familiar with multi-layer perceptrons, convolutional neural networks, recurrent neural networks, transformer encoders, graph convolutional/isomorphism/attention networks, and autoencoders.

Prerequisites This course has two prerequsites: (1) Students must have some familiarity with the ideas behind deep learning. Any course that teaches the fundamentals of deep learning, e.g. Computational Thinking (Chapters 5 and 6), is sufficient, and so is an adequate amount of self-study. (2) Students must know an imperative programming language, e.g., C, C++, Java, Javascript, or Python. The course uses Python as a programming language, so we expect students to know the basics of Python (e.g., lists, control structures, functions). Concretely, understanding the concepts of this Python Cheat Sheet is necessary (but also sufficient) to attend the course.

Register: for this course on myStudies

Head TA Till Aczel

Sessions In each session, students work independently or in small groups, following a Python notebook, to explore various aspects of the topic of the given session. The step-by-step exercises are designed with intuition-building in mind. There are going to be TAs present at every session, answering students' questions and providing guidance where necessary.

Colab alternative Instead of running the notebook in colab, you can also run it on the Snowflake cluster. Logon details are sent via email. Instructions on how to start the jupyter notebook.

Attendance Attendance is mandatory. Unexcused absences will result in failing the lab. If you have a good excuse why you cannot attend a session (e.g., doctor's note, military service), send an email to Susann Arreghini.

Hardware Bring your preferred coding device. Some devices will also be available in the room.

Submission After each session you must submit proof of your work in order to get the credits. You must submit the filled-out notebook after each session. The submission deadline is midnight of the corresponding Tuesday. Submission link can be seen below. To be able to identify which one is your submission you need to rename the notebook to {LASTNAME}_{FIRSTNAME}.ipynb. For example, if your name is John Smith, then SMITH_JOHN.ipynb. You can submit several versions, but we will only look at the most recent one. You may work together with your colleagues, however, everyone must write their own programs. Do not copy other people's code!

Colab Tips and Tricks Save the notebook in your drive before you begin working on it to avoid losing your progress. If you run out of GPU hours, you can switch Google accounts. GPU hours reset about every day.

Challenge Winners The top 3 submissions for each challenge receive a small reward. Winners will be contacted directly.

Time Thursday, starting at 13:15. Please be on time and sign in, or your attendance will not be counted. The session lasts until 17:00. If you would like to leave early, you must show your completed notebook (including challenge) to a TA. If you leave early without having your notebook checked by a TA, your attendance will not be counted.

Place HG G1

Language English

Hackathon A Hackathon is scheduled for April 19th, running from 8 am to 8 pm, participation in the hackathon is optional. Teams of up to 3 individuals will tackle a deep learning challenge, building upon the knowledge gained in our sessions. Participating in the hackathon earns 3 session points for HODL, but even if you don't need points, you're welcome to join.

Register for the Hackathon using this link.

The registration deadline is the 4th of April 23:59.

Passing Requirements To pass the lab, you need to have 6 session points. A session gives a point if you attend the session and submit the session notebook on time. If you cannot attend a session (with an excuse, see above), submitting the notebook is enough. We will inform you about your points after the first 6 sessions. It may happen that you will miss a point, but you have at least 3 points. In this case we you can take part in the hackathon on the 19th of April, for which you can get additional 3 points. You won't be notified of reaching 6 session points prior to the hackathon registration deadline, but you can earn up to 3 session points through online challenges instead of the hackathon as well.

Schedule

Lab Date Material Submission Colab TA Session TAs
Introduction to Deep Learning 29th of February Colab Notebook 5th of March Peter Belcák Till Aczel, Patrick Hupertz, Pyrros Koussios, Entiol Liko, Yuta Ono
Natural Language Processing 7th of March Colab Notebook 12th of March Florian Grötschla Florian Grötschla, Patrick Hupertz, Pyrros Koussios, Entiol Liko, Yuta Ono
Perceptive Computer Vision 14th of March Colab Notebook 19th of March Peter Belcák Frédéric Berdoz, Patrick Hupertz, Pyrros Koussios, Entiol Liko, Yuta Ono
Audio Processing 21st of March Colab Notebook 26th of March Luca Lanzendörfer Luca Lanzendörfer, Patrick Hupertz, Pyrros Koussios, Entiol Liko, Yuta Ono
Graph Neural Networks 28th of March Colab Notebook 9th of April Joël Mathys Joël Mathys, Patrick Hupertz, Pyrros Koussios, Entiol Liko, Yuta Ono
Generative Computer Vision 11th of April Colab Notebook 16th of April Benjamin Estermann Benjamin Estermann, Patrick Hupertz, Pyrros Koussios, Entiol Liko, Yuta Ono