• Stars
    star
    2,947
  • Rank 15,371 (Top 0.4 %)
  • Language
    Jupyter Notebook
  • License
    MIT License
  • Created over 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Introduction to Deep Neural Networks with Keras and Tensorflow

Deep Learning with Keras and Tensorflow


Author: Valerio Maggio

Contacts:

@leriomaggio valeriomaggio valeriomaggio_at_gmail
git clone https://github.com/leriomaggio/deep-learning-keras-tensorflow.git

Table of Contents

  • Part I: Introduction

    • Intro to Artificial Neural Networks

      • Perceptron and MLP
      • naive pure-Python implementation
      • fast forward, sgd, backprop
    • Introduction to Deep Learning Frameworks

      • Intro to Theano
      • Intro to Tensorflow
      • Intro to Keras
        • Overview and main features
        • Overview of the core layers
        • Multi-Layer Perceptron and Fully Connected
          • Examples with keras.models.Sequential and Dense
        • Keras Backend
  • Part II: Supervised Learning

    • Fully Connected Networks and Embeddings

      • Intro to MNIST Dataset
      • Hidden Leayer Representation and Embeddings
    • Convolutional Neural Networks

      • meaning of convolutional filters

        • examples from ImageNet
      • Visualising ConvNets

      • Advanced CNN

        • Dropout
        • MaxPooling
        • Batch Normalisation
      • HandsOn: MNIST Dataset

        • FC and MNIST
        • CNN and MNIST
      • Deep Convolutional Neural Networks with Keras (ref: keras.applications)

        • VGG16
        • VGG19
        • ResNet50
    • Transfer Learning and FineTuning

    • Hyperparameters Optimisation

  • Part III: Unsupervised Learning

    • AutoEncoders and Embeddings
    • AutoEncoders and MNIST
      • word2vec and doc2vec (gensim) with keras.datasets
      • word2vec and CNN
  • Part IV: Recurrent Neural Networks

    • Recurrent Neural Network in Keras
      • SimpleRNN, LSTM, GRU
    • LSTM for Sentence Generation
  • PartV: Additional Materials:

    • Custom Layers in Keras
    • Multi modal Network Topologies with Keras

Requirements

This tutorial requires the following packages:

(Optional but recommended):

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.


Python Version

I'm currently running this tutorial with Python 3 on Anaconda

!python --version
Python 3.5.2

Setting the Environment

In this repository, files to re-create virtual env with conda are provided for Linux and OSX systems, namely deep-learning.yml and deep-learning-osx.yml, respectively.

To re-create the virtual environments (on Linux, for example):

conda env create -f deep-learning.yml

For OSX, just change the filename, accordingly.

Notes about Installing Theano with GPU support

NOTE: Read this section only if after pip installing theano, it raises error in enabling the GPU support!

Since version 0.9 Theano introduced the libgpuarray in the stable release (it was previously only available in the development version).

The goal of libgpuarray is (from the documentation) make a common GPU ndarray (n dimensions array) that can be reused by all projects that is as future proof as possible, while keeping it easy to use for simple need/quick test.

Here are some useful tips (hopefully) I came up with to properly install and configure theano on (Ubuntu) Linux with GPU support:

  1. [If you're using Anaconda] conda install theano pygpu should be just fine!

Sometimes it is suggested to install pygpu using the conda-forge channel:

conda install -c conda-forge pygpu

  1. [Works with both Anaconda Python or Official CPython]

After Theano is installed:

echo "[global]
device = cuda
floatX = float32

[lib]
cnmem = 1.0" > ~/.theanorc

Installing Tensorflow

To date tensorflow comes in two different packages, namely tensorflow and tensorflow-gpu, whether you want to install the framework with CPU-only or GPU support, respectively.

For this reason, tensorflow has not been included in the conda envs and has to be installed separately.

Tensorflow for CPU only:

pip install tensorflow

Tensorflow with GPU support:

pip install tensorflow-gpu

Note: NVIDIA Drivers and CuDNN must be installed and configured before hand. Please refer to the official Tensorflow documentation for further details.

Important Note:

All the code provided+ in this tutorial can run even if tensorflow is not installed, and so using theano as the (default) backend!

This is exactly the power of Keras!

Therefore, installing tensorflow is not stricly required!

+: Apart from the 1.2 Introduction to Tensorflow tutorial, of course.

Configure Keras with tensorflow

By default, Keras is configured with theano as backend.

If you want to use tensorflow instead, these are the simple steps to follow:

  1. Create the keras.json (if it does not exist):
touch $HOME/.keras/keras.json
  1. Copy the following content into the file:
{
    "epsilon": 1e-07,
    "backend": "tensorflow",
    "floatx": "float32",
    "image_data_format": "channels_last"
}
  1. Verify it is properly configured:
!cat ~/.keras/keras.json
{
	"epsilon": 1e-07,
	"backend": "tensorflow",
	"floatx": "float32",
	"image_data_format": "channels_last"
}

Test if everything is up&running

1. Check import

import numpy as np
import scipy as sp
import pandas as pd
import matplotlib.pyplot as plt
import sklearn
import keras
Using TensorFlow backend.

2. Check installed Versions

import numpy
print('numpy:', numpy.__version__)

import scipy
print('scipy:', scipy.__version__)

import matplotlib
print('matplotlib:', matplotlib.__version__)

import IPython
print('iPython:', IPython.__version__)

import sklearn
print('scikit-learn:', sklearn.__version__)
numpy: 1.11.1
scipy: 0.18.0
matplotlib: 1.5.2
iPython: 5.1.0
scikit-learn: 0.18
import keras
print('keras: ', keras.__version__)

# optional
import theano
print('Theano: ', theano.__version__)

import tensorflow as tf
print('Tensorflow: ', tf.__version__)
keras:  2.0.2
Theano:  0.9.0
Tensorflow:  1.0.1

If everything worked till down here, you're ready to start!

More Repositories

1

python-in-a-notebook

Collection of Jupyter Notebooks about Python programming
Jupyter Notebook
154
star
2

python-data-science

Lecture notes and materials for Python Data Science course
Jupyter Notebook
37
star
3

ppml-tutorial

Privacy-Preserving Machine Learning (PPML) Tutorial
Jupyter Notebook
36
star
4

notexbook-jupyter-theme

noTeXbook: Jupyter notebook theme for LaTeX lovers
CSS
32
star
5

numpy-euroscipy

Introduction to NumPy - Tutorial @ EuroSciPy
Jupyter Notebook
30
star
6

async-ipython-magic

Async IPython Magic for Asynchronous Notebook Cell Execution
Python
21
star
7

pytorch-beautiful-ml-data

PyData Global Tutorial on Data Patterns and OOP abstractions for Deep Learning using PyTorch
Jupyter Notebook
16
star
8

deep-learning-health-life-sciences

Workshop on Deep Learning for Health and Life Sciences
Jupyter Notebook
14
star
9

numpy_ep2015

Material for the training on Numpy presented at EuroPython 2015
10
star
10

privacy-preserving-data-science

Course Material for the Tutorial on Privacy Enhancing Technologies and PPML
Jupyter Notebook
10
star
11

deep-unsupervised-learning

Deep Unsupervised Learning Course
Jupyter Notebook
8
star
12

django2-resumable

Django 2.0 App integrating resumable-js in forms and admin for large files upload
JavaScript
8
star
13

reproducible-learn

Reproducible Machine and Deep Learning pipelines
Python
7
star
14

pyscript-dataviz

Rethinking Data Visualisation with PyScript
JavaScript
7
star
15

develer-data-science

Deep dive into Data Science with Python @ Develer
Jupyter Notebook
6
star
16

AoC

My Attempt to Advent of Code 2021/2022
Python
4
star
17

pyconit-community-voting

Community Voting Results and Rankings for Talks proposed at PyCon Italia
Jupyter Notebook
4
star
18

code-coherence-analysis

Code, Lexical/Data Analysis, and Machine Learning Models for Code-Comments Coherence Study
Jupyter Notebook
3
star
19

deep-learning-for-data-science

Tutorials on Deep Learning for Data Science with PyTorch
Jupyter Notebook
3
star
20

euroscipy22-pytorch

Lecture materials for the Introduction to Pytorch tutorial presented at EuroScipy 2022 in Basel, Switzerland
Jupyter Notebook
3
star
21

webvalley-online-python-programming

Introduction to Python Course for WebValley 2020
HTML
2
star
22

pytorch-data-pipelines-tutorial

Tutorial on Reproducible Data Pipelines with PyTorch
Jupyter Notebook
2
star
23

computational-science-lectures

Lecture Notes (i.e., iPython Notebooks) about Python for Computational Science
2
star
24

deep-learning-class

Jupyter Notebook
2
star
25

traversing-mazes-pythonic-way

JavaScript
2
star
26

unsupervised-learning-tutorial

Unsupervised Learning Tutorial
Jupyter Notebook
2
star
27

dst-23-ppml

Data Science and Privacy Preserving Machine Learning (PPML) - Data Science for Development in Somaliland (DST-23)
Jupyter Notebook
2
star
28

network-analysis-mscx18

Network Analysis Tutorial for MSCX Summer School
Jupyter Notebook
1
star
29

nerdy_love

Python
1
star
30

getting-and-cleaning-data

GitHub Repository for the "Getting and Cleaning Data" Course Project
R
1
star
31

nomoji

Simple and silly Python package to print numbers using Emoji digits.
Python
1
star
32

datasciencecoursera

GitHub Repository for the "Data Science Toolbox" Course on Coursera
1
star
33

membership-inference-attack

Membership Inference Attack with PyTorch and intro to OPACUS and Differential Privacy
Jupyter Notebook
1
star