Skip to content

xEluaS/RCDS-Deep-Learning-CNN-MPA

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RCDS, Deep Learning with Python

In this course, we will go through the basic concepts of Deep Learning, taking a hands-on approach. You will thus learn how to develop and apply convolutional neural networks (CNN) in Python using PyTorch. For this purpose, we will delve into the basics of PyTorch and concepts of computer vision using torchvision (lecture 1). We will train our own CNNs from scratch and use transfer learning to build on existing neural networks (lecture 2). Finally, you will learn how to optimise and evaluate your network architecture and its performance (lecture 3).

Previous knowledge of PyTorch is not required for the course nor are you expected to know anything about Deep Learning beforemand, as we will cover the basics. However, participants must be familiar with the basic concepts of Python programming: specifically, numpy and matplotlib and the fundamental building blocks of Python programming (functions and classes). Furthermore, since we will build on the terminology introduced in the RCDS course Introduction to Machine Learning, it is a prerequisite for the present workshop.

The slides from the lectures are provided in the folder SLIDES. The lecture recordings can be found on Panopto using the links below.

The folder NOTEBOOKS contains Jupyter-notebooks with the examples and exercises used in the course. You can also access the notebooks directly via Google Colab using the links below.

In the folder QUIZ, you will find a notebook that provides an interactive multiple-choice quiz on the covered material. The quiz can also be found directly on Google Colab using a link below.

Finally, the folder SOLUTIONS contains links to notebooks in Google Colab with solutions to a selected set of programming exercises.

Learning outcomes

After attending this workshop, you will be better able to:

  • Explain the basic terminology and concepts of deep learning methods.

  • Summarise applications of different neural network architectures, including CNN.

  • Understand the implementation of neural networks in PyTorch, including their training and testing.

  • Apply a range of neural network architectures in PyTorch, including CNN, to data.

  • Assess the performance of a range of neural networks in PyTorch, including CNN.

See also the RCDS page of the course.

Lectures

If you are a student or member of staff at Imperial College London, you can access the lectures recordings on Panopto

Google Colab

You can access the notebooks that accompany the lectures directly on Google Colab via the links below to create your own copy of the notebooks. Alternatively, you can find the code in the corresponding folders as listed above. Note that the notebooks are tailored for Google Colab, i.e., if you decide to run the code on your own computer, you might need to adapt a few lines of code (e.g., to load the files in the quiz).

  • Notebook 1.1: Open In Colab
  • Notebook 1.2: Open In Colab
  • Notebook 1.3: Open In Colab
  • Notebook 2.1: Open In Colab
  • Notebook 2.2: Open In Colab
  • Notebook 2.3: Open In Colab
  • Notebook 3.1: Open In Colab
  • Notebook 3.2: Open In Colab
  • Quiz notebook: Open In Colab

Getting Started

If you want to run the notebooks on your own laptop, you will need to install PyTorch. In the course, we will run the code on Google Colab, i.e., no local installations will be required. See also the notebook "0.1 Installation" in NOTEBOOKS.

Suggested external resources

For a general introduction to machine learning beyond Deep Learning, please see

For more information on PyTorch, see also Learn PyTorch for Deep Learning: Zero to Mastery.

Due to the time constraints, the course delves into CNNs only. The course does hence not cover Physics-informed neural networks (PINN), Transformers, Graph neural networks (GNN), Generative Adversarial Networks (GAN), normalising flows, or autoencoders. For post-course reading on any of these topics, we recommend

For a visual representation of what happens in each layer of a CNN, have a look at tensorspace.org. You can create such a visual representation yourself (see notebook 2.1).

For animations of what happens inside a neural network, have a look at https://animatedai.github.io.

In this course, you will find code that takes you through each step. However, you can get Python packages, such as Supergradient, that allow you to train your model with a single line of code.

Insightful introductions to topics in Deep Learning can also be found on https://distill.pub/.

For notebooks or other topics within Deep Learning, we recommend the course material by I-X.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 97.9%
  • Python 2.0%
  • TeX 0.1%