Skip to content

Keras implementations of Generative Adversarial Networks. GANs, DCGAN, CGAN, CCGAN, WGAN and LSGAN models with MNIST and CIFAR-10 datasets.

License

Notifications You must be signed in to change notification settings

mafda/generative_adversarial_networks_101

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Generative Adversarial Networks - GANs

This repository presents the basic notions that involve the concept of Generative Adversarial Networks.

"...the most interesting idea in the last 10 years in ML". Yann LeCun

Definition

Generative Adversarial Networks or GANs is a framework proposed by Ian Goodfellow, Yoshua Bengio and others in 2014.

GANs are composed of two models, represented by artificial neural network:

  • The first model is called a Generator and it aims to generate new data similar to the expected one.
  • The second model is named the Discriminator and it aims to recognize if an input data is ‘real’ — belongs to the original dataset — or if it is ‘fake’ — generated by a forger.

Read more in this post GANs — Generative Adversarial Networks 101.

Configure environment

  • Create the conda environment
(base)$: conda env create -f environment.yml
  • Activate the environment
(base)$: conda activate gans_101
  • Run!
(gans_101)$: python -m jupyter notebook

Models

Definition and training some models with MNIST and CIFAR-10 datasets.

MNIST dataset

CIFAR-10 dataset

Results

Training models with Keras - TensorFlow.

MNIST dataset

Generative Adversarial Networks - GANs

A GANs implementation using fully connected layers. Notebook

Epoch 00 Epoch 100 Loss
GAN with MNIST GAN with MNIST GAN with MNIST

Deep Convolutional Generative Adversarial Networks - DCGANs

A DCGANs implementation using the transposed convolution technique. Notebook

Epoch 00 Epoch 100 Loss
GAN with MNIST GAN with MNIST GAN with MNIST

Conditional Generative Adversarial Nets - CGANs

A CGANs implementation using fully connected layers and embedding layers. Notebook

Epoch 00 Epoch 100 Loss
CGAN with MNIST CGAN with MNIST CGAN with MNIST

Context-Conditional Generative Adversarial Networks - CCGANs

A CCGANs implementation using U-Net and convolutional neural network. Notebook

Epoch 00 Epoch 100 Loss
CGAN with MNIST CGAN with MNIST CGAN with MNIST

Wasserstein Generative Adversarial Networks - WGANs

A WGANs implementation using convolutional neural network. Notebook

Epoch 00 Epoch 100 Loss
WGAN with MNIST WGAN with MNIST WGAN with MNIST

Least Squares General Adversarial Networks - LSGANs

A LSGANs implementation using using fully connected layers. Notebook

Epoch 00 Epoch 100 Loss
LSGAN with MNIST LSGAN with MNIST LSGAN with MNIST

CIFAR-10 dataset

Deep Convolutional Generative Adversarial Networks - DCGANs

A DCGANs implementation using the transposed convolution technique. Notebook

Epoch 00 Epoch 100 Loss
DCGAN with CIFAR-10 DCGAN with CIFAR-10 DCGAN with CIFAR-10

Conditional Generative Adversarial Networks - CGANs

A CGANs implementation using the transposed convolution and convolution neural network, and concatenate layers. Notebook

Epoch 00 Epoch 100 Loss
CGAN with CIFAR-10 CGAN with CIFAR-10 CGAN with CIFAR-10

References


made with 💙 by mafda