Tensorflow implementation of Deep Convolutional Generative Adversarial Networks which is a stabilize Generative Adversarial Networks. The referenced torch code can be found here.
To avoid the fast convergence of D (discriminator) network, G (generatior) network is updatesd twice for each D network update which is a different from original paper.
- Python 2.7 or Python 3.3+
- Tensorflow
- SciPy
- (Optional) Align&Cropped Images.zip : Large-scale CelebFaces Dataset
First, download dataset with:
$ mkdir data
$ python download.py --datasets celebA
To train a model with celebA dataset:
$ python main.py --dataset celebA --is_train True --is_crop True
To test with an existing model:
$ 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
After 6th epoch:
After 10th epoch:
![result4](assets/test_2016-01-27 15:08:54.png)
With asian face dataset (with high noises):
More results can be found here and here.
Details of the loss of Discriminator and Generator (with custom dataset not celebA).
Details of the histogram of true and fake result of discriminator (with custom dataset not celebA).
Taehoon Kim / @carpedm20