Hands-On Deep Learning (HS 2024)
Overview
When: Monday 12:15-16:00
Place: HG G1
Language: English
Register: for this course on myStudies
Head TA: Till Aczel
TAs: Armin Begic, Benjamin Jäger, Pyrros Koussios, Megan Marty, Sascha Pucillo, Simon Schlude
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. You'll explore common and advanced neural architectures, understand network structures, and apply them to solve examples and challenges.
Prerequisites
This course has two prerequsites:
- 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.
- 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.
Structure
This course is organized into specific topics, with each topic spanning two weeks.- Session week: Includes a session, the notebook, and challenge submission.
- Discussion week: You discuss your work with a TA.
Session
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. There are going to be TAs present at every session, answering students' questions and providing guidance where necessary.
Bring your laptop. Some machines will also be available in the room. The exercises require GPUs. You have two alternatives:
- Snowflake cluster (recommended) A GPU cluster using SLURM, where you can start an interactive session. Login details are sent via email. Instructions on how to start the jupyter notebook.
- Google Colab: A user-friendly interface offering free access to computational resources for a limited duration each day. 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 may switch to an alternative Google account.
Submission
The submission consists of 2 parts:
- Notebook: You must submit the filled-in notebook after each session.
- Challenge: The last part of each notebook is a challenge. You must submit the output of the challenge solution separately. The challenge cell in your notebook needs to generate your uploaded challenge CSV. The top 3 submissions for each challenge receive a small award!
The submission deadline for each topic is Friday of the session week. Collaboration with colleagues is encouraged, but everyone must write their own programs. Do not copy other people's code or solutions! After uploading to CodeExpert, you will get immediate feedback on whether you have passed the challenge.
Discussion
To demonstrate your understanding of the topic and receive feedback on your work, you will discuss it with a TA. The preparation for the discussion is solving the notebook and the challenge. During the discussion, the TA will highlight a specific exercise or challenge, and you should be prepared to explain your solution clearly. Each discussion will take about 20 minutes, and you'll be paired with another student. Please ensure that you sign up in CodeExpert for a discussion slot in advance.
Passing Requirements
To pass the lab, you need to earn 18 XP out of the maximum 24 XP (4 XP for each of the 6 topics).
- 1 XP for attending the session.
- 1 XP for solving the notebook and challenge and submitting them on time.
- 2 XP for the discussion. (sign up in CodeExpert needed)
Updates
- 18.09.2024 - Register to CodeExpert.
- 18.10.2024 - New Snowflake guide.
- 13.11.2024 - One discussion can be repeated on the 16th of December.
Schedule
Topic | Notebook | Topic TA | Session | Submission | Discussion |
---|---|---|---|---|---|
Introduction to Deep Learning | link | Till Aczel | September 23 | September 27 | September 30 |
Computer Vision and Audio | link | Luca Lanzendörfer | Oktober 7 | Oktober 11 | Oktober 14 |
Graph Neural Networks | link | Samuel Dauncey | Oktober 21 | Oktober 25 | Oktober 28 |
Natural Language Processing | link | Frédéric Berdoz | November 4 | November 8 | November 11 |
Reinforcement Learning | link | Saku Peltonen | November 18 | November 22 | November 25 |
Generative Computer Vision | link | Andreas Plesner | December 2 | December 6 | December 9 |