This lesson is being piloted (Beta version)
If you teach this lesson, please tell the authors and provide feedback by opening an issue in the source repository

Introduction to deep-learning

Looking for Beta Testers!

We are currently looking for volunteers to test this lesson! If you would like to teach this lesson in a pilot workshop, please let the lesson developers know by opening a new issue on the lesson repository or posting to the #machine_learning Slack channel on The Carpentries Slack. We would love to help you prepare to teach the lesson and receive feedback on how it could be further improved, based on your experience in the workshop.

This is an hands-on introduction to the first steps in Deep Learning, intended for researchers who are familiar with (non-deep) Machine Learning.

The use of Deep Learning has seen a sharp increase of popularity and applicability over the last decade. While Deep Learning can be a useful tool for researchers from a wide range of domains, taking the first steps in the world of Deep Learning can be somewhat intimidating. This introduction aims to cover the basics of Deep Learning in a practical and hands-on manner, so that upon completion, you will be able to train your first neural network and understand what next steps to take to improve the model.

We start with explaining the basic concepts of neural networks, and then go through the different steps of a Deep Learning workflow. Learners will learn how to prepare data for deep learning, how to implement a basic Deep Learning model in Python with Keras, how to monitor and troubleshoot the training process and how to implement different layer types such as convolutional layers.


Learners are expected to have the following knowledge:

  • Basic Python programming skills and familiarity with the Pandas package.
  • Basic knowledge on Machine learning, including the following concepts: Data cleaning, train & test split, type of problems (regression, classification), overfitting & underfitting, metrics (accuracy, recall, etc.).


Setup Download files required for the lesson
00:00 1. Introduction What is Deep Learning?
When does it make sense to use and not use Deep Learning?
When is it successful?
What are the tools involved?
What is the workflow for Deep Learning?
Why did we choose to use Keras in this lesson?
00:55 2. Classification by a Neural Network using Keras What is a neural network?
How do I compose a Neural Network using Keras?
How do I train this network on a dataset?
How do I get insight into learning process?
How do I measure the performance of the network?
02:10 3. Monitor the training process How do I create a neural network for a regression task?
How do I monitor the training process?
How do I detect (and avoid) overfitting?
What are common options to improve the model performance?
05:45 4. Advanced layer types Why do we need different types of layers?
What are good network designs for image data?
What is a convolutional layer?
How can we use different types of layers to prevent overfitting?
07:25 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.