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 https://github.com/leriomaggio/deep-learning-keras-tensorflow/

**GOAL OF THIS TUTORIAL**

- 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

- naive pure-Python implementation

- Intro to ANN (~20 mins)
- 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

- Overview and main features
- 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: https://github.com/fchollet/deep-learning-models) - 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

- RNN and LSTM (10 mins)
- Wrap up and Conclusions (5 mins)

**REQUIREMENTS**

This tutorial requires the following packages:

- Python version 3.5.x
- Python 3.4 should be fine as well
- likely Python 2.7 would be also fine, but who knows? :P

- numpy version 1.10 or later: http://www.numpy.org/
- scipy version 0.16 or later: http://www.scipy.org/
- matplotlib version 1.4 or later: http://matplotlib.org/
- pandas version 0.16 or later: http://pandas.pydata.org
- scikit-learn version 0.15 or later: http://scikit-learn.org
- keras version 1.0 or later: http://keras.io
- tensorflow version 0.9 or later: https://www.tensorflow.org
- ipython/jupyter version 4.0 or later, with notebook support

(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. https://developer.nvidia.com/rdp/cudnn-download
- 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.