Book Image

Generative Adversarial Networks Cookbook

By : Josh Kalin
Book Image

Generative Adversarial Networks Cookbook

By: Josh Kalin

Overview of this book

Developing Generative Adversarial Networks (GANs) is a complex task, and it is often hard to find code that is easy to understand. This book leads you through eight different examples of modern GAN implementations, including CycleGAN, simGAN, DCGAN, and 2D image to 3D model generation. Each chapter contains useful recipes to build on a common architecture in Python, TensorFlow and Keras to explore increasingly difficult GAN architectures in an easy-to-read format. The book starts by covering the different types of GAN architecture to help you understand how the model works. This book also contains intuitive recipes to help you work with use cases involving DCGAN, Pix2Pix, and so on. To understand these complex applications, you will take different real-world data sets and put them to use. By the end of this book, you will be equipped to deal with the challenges and issues that you may face while working with GAN models, thanks to easy-to-follow code solutions that you can implement right away.
Table of Contents (17 chapters)
Title Page
Copyright and Credits
About Packt
Dedication
Contributors
Preface
Dedication2
Index

From theory to code – a simple example


So, we've finally got all the right tools to produce a GAN in code. Why is it important that the entry level version of a GAN is small? The goal of this code is to make it as compact as possible to ensure that, as we expand on the concept of a GAN, it becomes obvious what changes need to be made to make improvements on this basic formula.

Getting ready

Did you forget yet? Let's pull up the diagram on GANs so that we can discuss the different parts of the structure we will be producing classes for in this chapter:

This basic structure is what we will be converting to code. The key to this particular recipe is understanding what pieces we need to convert and what pieces are simply going to be wrapped up into a single class. For example, the latent space will be sampled from a Gaussian distribution that's available in the NumPy library. Since we are just sampling from this Gaussian distribution, it is necessary to know the size of the latent space at each...