/DCGAN-tensorflow

A tensorflow implementation of Deep Convolutional Generative Adversarial Networks

Primary LanguageJavaScriptMIT LicenseMIT

DCGAN in Tensorflow

Tensorflow implementation of Deep Convolutional Generative Adversarial Networks which is a stabilize Generative Adversarial Networks. The referenced torch code can be found here.

alt tag

  • Brandon Amos wrote an excellent blog post and image completion code based on this repo.
  • To avoid the fast convergence of D (discriminator) network, G (generator) network is updated twice for each D network update, which differs from original paper.

Online Demo

link

Prerequisites

Usage

First, download dataset with:

$ python download.py mnist
$ python download.py celebA

To train a model with downloaded dataset:

$ python main.py --dataset mnist --is_train True
$ python main.py --dataset celebA --is_train True --is_crop True

To test with an existing model:

$ python main.py --dataset mnist
$ python main.py --dataset celebA --is_crop True

Or, you can use your own dataset (without central crop) by:

$ mkdir data/DATASET_NAME
... add images to data/DATASET_NAME ...
$ python main.py --dataset DATASET_NAME --is_train True
$ python main.py --dataset DATASET_NAME

Results

result

celebA

After 6th epoch:

result3

After 10th epoch:

![result4](assets/test_2016-01-27 15:08:54.png)

Asian face dataset

custom_result1

custom_result1

custom_result2

MNIST

MNIST codes are written by @PhoenixDai.

mnist_result1

mnist_result2

mnist_result3

More results can be found here and here.

Training details

Details of the loss of Discriminator and Generator (with custom dataset not celebA).

d_loss

g_loss

Details of the histogram of true and fake result of discriminator (with custom dataset not celebA).

d_hist

d__hist

Author

Taehoon Kim / @carpedm20