Deep Learning with PyTorch

Deep Learning with PyTorch#

This course introduces the foundations of deep learning, covering supervised learning, neural network architectures, loss functions, and gradient-based optimization. It also presents the practical development of neural networks through data preparation, training, evaluation, diagnosis, and systematic experimentation.

The course combines conceptual lessons, implementation-focused tutorials, reference pages, and projects, with most examples and applications drawn from computer vision. It is designed to be useful both as teaching material and for independent study. No previous experience with PyTorch is required, but readers should be comfortable with Python and basic linear algebra.

How to use this material#

The course contains several types of material, each serving a different purpose.

  • Lessons provide the main conceptual sequence. They start with supervised learning and progressively introduce neural networks, training workflows, performance analysis, convolutional networks, deeper architectures, and representation learning. Most lessons include a guided lab to reinforce each concept.

  • Tutorials focus on implementation. They introduce NumPy and PyTorch in detail, and develop practical implementations of neural networks, convolutional models, transfer learning, and metric learning.

  • Quick Reference provides concise summaries of common PyTorch workflows and operations. It is intended primarily as a reference while working through the other material.

  • Projects present larger computer-vision tasks that can be solved with deep learning. They include problems in image classification, image retrieval, object localization, and crowd counting.

If you are learning deep learning for the first time, follow the Lessons in order and complete the associated guided labs. Use the Tutorials when you need more detail on implementation, and the Quick Reference as a compact source for frequently used PyTorch operations.

Lectures#

The lecture slides provide a higher-level presentation of several topics developed in the written material.

Slides

Description

Lecture01.pdf

Supervised learning and neural networks

Lecture02.pdf

Training and evaluating neural networks

Lecture03.pdf

Convolutional neural networks

Lecture04.pdf

Representation learning

Code#

Several reusable utilities introduced in the course are also available as standalone Python files.

File

Description

training.py

Reusable training and evaluation utilities

finetune.py

Utilities for transfer learning and fine-tuning

triplet.py

Utilities for training with triplet loss