Awesome-GANs with Tensorflow
Tensorflow implementation of GANs(Generative Adversarial Networks)
Environments
Preferred Environment
OS : Windows 10 / Linux Ubuntu x86-64 ~
CPU : any (quad core ~)
GPU : GTX 1060 6GB ~
RAM : 16GB ~
Library : TF 1.x with CUDA 9.0~ + cuDNN 7.0~
Python 3.x
Because of the image and model size, (especially BEGAN, SRGAN, StarGAN, ... using high resolution images as input), if you want to train them comfortably, you need a GPU which has more than 8GB.
But, of course, the most of the implementations use MNIST or CiFar-10, 100 DataSets. Meaning that we can handle it with EVEN lower spec GPU than 'The Preferred' :).
Prerequisites
python 3.x
tensorflow 1.x
numpy
scipy (some features are about to deprecated, it'll be replaced to OpenCV SOON!)
scikit-image
opencv-python
pillow
h5py
tqdm
Internet :)
Usage
Dependency Install
$ sudo python3 -m pip install -r requirements.txt
Training GAN
(Before running train.py, MAKE SURE run after downloading DataSet & changing DataSet's directory in xxx_train.py)
just after it, RUN train.py
$ python3 xxx_train.py
DataSets
Now supporting(?) DataSets are... (code is in /datasets.py)
MNIST / Fashion MNIST
CiFar-10 / 100
CelebA/CelebA-HQ
pix2pix DataSets
DIV2K DataSets
ImageNet DataSets
UrbanSound8K
3DShapeNet DataSet
(more DataSets will be added soon!)
Repo Tree
│
├── xxGAN
│ ├──gan_img (generated images)
│ │ ├── train_xxx.png
│ │ └── train_xxx.png
│ ├── model (model)
│ │ └── model.txt (google-drive link for pre-trained model)
│ ├── gan_model.py (gan model)
│ ├── gan_train.py (gan trainer)
│ ├── gan_tb.png (Tensor-Board result)
│ └── readme.md (results & explains)
├── tfutil.py (useful TF util)
├── image_utils.py (image processing)
└── datasets.py (DataSet loader)
Pre-Trained Models
Here's a google drive link. You can download pre-trained models from here !
Papers & Codes
Name
Summary
Paper
Code
3D GAN
3D Generative Adversarial Networks
ACGAN
Auxiliary Classifier Generative Adversarial Networks
AdaGAN
Boosting Generative Models
AnoGAN
Unsupervised Anomaly Detection with Generative Adversarial Networks
BeatGAN
Generating Drum Loops via GANs
BEGAN
Boundary Equilibrium Generative Adversarial Networks
BGAN
Boundary-Seeking Generative Adversarial Networks
BigGAN
Large Scale GAN Training for High Fidelity Natural Image Synthesis
CGAN
Conditional Generative Adversarial Networks
CipherGAN
Unsupervised Cipher Cracking Using Discrete GANs
CoGAN
Coupled Generative Adversarial Networks
CycleGAN
Unpaired img2img translation using Cycle-consistent Adversarial Networks
DAGAN
Instance-level Image Translation by Deep Attention Generative Adversarial Networks
DCGAN
Deep Convolutional Generative Adversarial Networks
DeblurGAN
Blind Motion Deblurring Using Conditional Adversarial Networks
DiscoGAN
Discover Cross-Domain Generative Adversarial Networks
DRAGAN
On Convergence and Stability of Generative Adversarial Networks
DualGAN
Unsupervised Dual Learning for Image-to-Image Translation
eCommerceGAN
A Generative Adversarial Network for E-commerce
EBGAN
Energy-based Generative Adversarial Networks
f-GAN
Training Generative Neural Samplers using Variational Divergence Minimization
GAN
Generative Adversarial Networks
GP-GAN
Towards Realistic High-Resolution Image Blending
Softmax GAN
Generative Adversarial Networks with Softmax
GAP
Generative Adversarial Parallelization
GEGAN
Generalization and Equilibrium in Generative Adversarial Networks
InfoGAN
Interpretable Representation Learning by Information Maximizing Generative Adversarial Networks
LAPGAN
Laplacian Pyramid Generative Adversarial Networks
LSGAN
Loss-Sensitive Generative Adversarial Networks
MAGAN
Margin Adaptation for Generative Adversarial Networks
MRGAN
Mode Regularized Generative Adversarial Networks
PassGAN
A Deep Learning Approach for Password Guessing
PGGAN
Progressive Growing of GANs for Improved Quality, Stability, and Variation
SeAtGAN
Self-Attention Generative Adversarial Networks
SpAtGAN
Generative Adversarial Network with Spatial Attention for Face Attribute Editing
SalGAN
Visual Saliency Prediction Generative Adversarial Networks
SEGAN
Speech Enhancement Generative Adversarial Network
SeqGAN
Sequence Generative Adversarial Networks with Policy Gradient
SGAN
Stacked Generative Adversarial Networks
SGAN++
Realistic Image Synthesis with Stacked Generative Adversarial Networks
SinGAN
Learning a Generative Model from a Single Natural Image
SRGAN
Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
StableGAN
Stabilizing Adversarial Nets With Prediction Methods
StarGAN
Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation
StarGAN V2
Diverse Image Synthesis for Multiple Domains
StyleGAN
A Style-Based Generator Architecture for Generative Adversarial Networks
StyleGAN V2
Analyzing and Improving the Image Quality of StyleGAN
TAC-GAN
Text Conditioned Auxiliary Classifier Generative Adversarial Network
TempoGAN
A Temporally Coherent, Volumetric GAN for Super-resolution Fluid Flow
TextureGAN
Controlling Deep Image Synthesis with Texture Patches
TripleGAN
Triple Generative Adversarial Networks
TwinGAN
Cross-Domain Translation fo Human Portraits
UGAN
Unrolled Generative Adversarial Networks
WaveGAN
Synthesizing Audio with Generative Adversarial Networks
WGAN
Wasserstein Generative Adversarial Networks
WGAN-GP
Improved Training of Wasserstein Generative Adversarial Networks
XGAN
Unsupervised Image-to-Image Translation for Many-to-Many Mappings
To-Do
Implement DeblurGAN
Implement 3DGAN - later when DataSet is ready.
Implement BeatGAN - later when DataSet is ready.
Implement TempoGAN - later when DataSet is ready.
Fix PGGAN, SGAN, SGAN++
ETC
Any suggestions and PRs and issues are WELCONE :)
Author
HyeongChan Kim / @kozistr