Book Image

Deep Learning with Keras

By : Antonio Gulli, Sujit Pal
Book Image

Deep Learning with Keras

By: Antonio Gulli, Sujit Pal

Overview of this book

This book starts by introducing you to supervised learning algorithms such as simple linear regression, the classical multilayer perceptron and more sophisticated deep convolutional networks. You will also explore image processing with recognition of handwritten digit images, classification of images into different categories, and advanced objects recognition with related image annotations. An example of identification of salient points for face detection is also provided. Next you will be introduced to Recurrent Networks, which are optimized for processing sequence data such as text, audio or time series. Following that, you will learn about unsupervised learning algorithms such as Autoencoders and the very popular Generative Adversarial Networks (GANs). You will also explore non-traditional uses of neural networks as Style Transfer. Finally, you will look at reinforcement learning and its application to AI game playing, another popular direction of research and application of neural networks.
Table of Contents (16 chapters)
Title Page
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Keras adversarial GANs for forging MNIST


Keras adversarial (https://github.com/bstriner/keras-adversarial) is an open source Python package for building GANs developed by Ben Striner (https://github.com/bstriner and https://github.com/bstriner/keras-adversarial/blob/master/LICENSE.txt). Since Keras just recently moved to 2.0, I suggest downloading latest Keras adversarial package:

git clone --depth=50 --branch=master https://github.com/bstriner/keras-adversarial.git

And install setup.py:

python setup.py install

Note that compatibility with Keras 2.0 is tracked in this issue https://github.com/bstriner/keras-adversarial/issues/11.

 If the generator G and the discriminator D are based on the same model, M, then they can be combined into an adversarial model; it uses the same input, M, but separates targets and metrics for G and D. The library has the following API call:

adversarial_model = AdversarialModel(base_model=M,
    player_params=[generator.trainable_weights, discriminator.trainable_weights...