Deep Learning with Keras and Tensorflow Tutorial

This tutorial by Valerio Maggio (Researcher at MPBA) wanna be a start point to learn the basic principles of Deep Learning with Python. It is composed in several moduels who include notebooks with code snippets and real examples. Here the repo


  • Introduce main features of Keras
    • Plus some introductory overview of Tensorflow
  • Learn how simple and Pythonic is doing Deep Learning with Keras
  • Understand how easy is to do basic and advanced Deep Learning models in Keras;
    • Examples and Hand-on Excerises along the way.

Attention: Spoilers Warning!

  • Setup (10 mins)
  • Part I: Introduction (~65 mins)
    • Intro to ANN (~20 mins)
      • naive pure-Python implementation
        • fast forward, sgd, backprop
  • Intro to Tensorflow (15 mins)
    • Model + SGD with Tensorflow
  • Introduction to Keras (30 mins)
    • Overview and main features
      • Tensorflow backend
      • Theano backend
    • Multi-Layer Perceptron and Fully Connected
      • Examples with keras.models.Sequential and Dense
      • HandsOn: MLP with keras
  • Part II: Supervised Learning and Convolutional Neural Nets (~45 mins)
    • Intro: Focus on Image Classification (5 mins)
    • Intro to ConvNets (25 mins)
      • meaning of convolutional filters
      • examples from ImageNet
      • Meaning of dimensions of Conv filters (through an exmple of ConvNet)
      • Visualising ConvNets
      • HandsOn: ConvNet with keras
    • Advanced CNN (10 mins)
      • Dropout
      • MaxPooling
      • Batch Normalisation
    • Famous Models in Keras (likely moved somewhere else) (10 mins) (ref: - VGG16 - VGG19 - ResNet50 - Inception v3
      • HandsOn: Fine tuning a network on new dataset
  • Part III: Unsupervised Learning (10 mins)
    • AutoEncoders (5 mins)
    • word2vec & doc2vec (gensim) & keras.datasets (5 mins)
      • Embedding
      • word2vec and CNN
    • Exercises
  • Part IV: Advanced Materials (20 mins)
    • RNN and LSTM (10 mins)
      • RNN, LSTM, GRU
    • Example of RNN and LSTM with Text (~10 mins) – Tentative
    • HandsOn: IMDB
  • Wrap up and Conclusions (5 mins)


This tutorial requires the following packages:

(Optional but recommended):

  • pyyaml
  • hdf5 and h5py (required if you use model saving/loading functions in keras)
  • NVIDIA cuDNN if you have NVIDIA GPUs on your machines.
  • The easiest way to get (most) these is to use an all-in-one installer such as Anaconda from Continuum. These are available for multiple architectures.