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
⚠️ Note
🎉 Run with conda environment:
- GAN - MNIST
🚧 Under construction:
- DCGAN - MNIST
- CGAN - MNIST
- CCGAN - MNIST
- WGAN - MNIST
- LSGAN - MNIST
- DCGAN - CIFAR10
- CGAN - CIFAR10
Models
Definition and training some models with MNIST and CIFAR-10 datasets.
MNIST dataset
- GAN - MNIST Notebook - Post Medium
- DCGAN - MNIST Notebook - Post Medium
- CGAN - MNIST Notebook - Post Medium
- CCGAN - MNIST Notebook - Post Medium
- WGAN - MNIST Notebook - Post Medium
- LSGAN - MNIST Notebook - Post Medium
CIFAR-10 dataset
- DCGAN - CIFAR10 Notebook - Post Medium
- CGAN - CIFAR10 Notebook - Post Medium
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 |
---|---|---|
Deep Convolutional Generative Adversarial Networks - DCGANs
A DCGANs implementation using the transposed convolution technique. Notebook
Epoch 00 | Epoch 100 | Loss |
---|---|---|
Conditional Generative Adversarial Nets - CGANs
A CGANs implementation using fully connected layers and embedding layers. Notebook
Epoch 00 | Epoch 100 | Loss |
---|---|---|
Context-Conditional Generative Adversarial Networks - CCGANs
A CCGANs implementation using U-Net and convolutional neural network. Notebook
Epoch 00 | Epoch 100 | Loss |
---|---|---|
Wasserstein Generative Adversarial Networks - WGANs
A WGANs implementation using convolutional neural network. Notebook
Epoch 00 | Epoch 100 | Loss |
---|---|---|
Least Squares General Adversarial Networks - LSGANs
A LSGANs implementation using using fully connected layers. Notebook
Epoch 00 | Epoch 100 | Loss |
---|---|---|
CIFAR-10 dataset
Deep Convolutional Generative Adversarial Networks - DCGANs
A DCGANs implementation using the transposed convolution technique. Notebook
Epoch 00 | Epoch 100 | Loss |
---|---|---|
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 |
---|---|---|
References
-
Complete Post Medium
-
Related papers:
-
Datasets:
-
Other repositories:
made with 💙 by mafda