Home

Awesome

code for "Improving GAN Training via Binarized Representation Entropy (BRE) Regularization" (ICLR2018 paper)

paper: https://arxiv.org/abs/1805.03644

Getting data

For cifar10

Get the matlab version of cifar10 from https://www.cs.toronto.edu/~kriz/cifar.html run python utils/preprocess_cifar10.py [path_to_downloaded_file]

For celeba

Get the Align&Cropped version of celeba from http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html run python utils/preprocess_celeba.py [path_to_downloaded_file]

Dependencies

tensorflow (need 1.4.0 for the evaluation code to run properly) lasagne (tested with 0.2.dev1) theano (tested with 1.0.1) cuda (tested with version 8.0) cudnn (tested with 7005)

Version probably doens't matter: joblib scipy numpy PIL

Train GAN:

To run a default experiment (version of dcgan used in paper, bre turned on, cifar10 experiments)

python run.py 

To reproduce results from the paper for DCGAN equal size for example:

python run.py max_iteration:40000 bre_w:1 model_func:dcgan_equal_size monitor:1

To turn off BRE for baseline:

python run.py max_iteration:40000 bre_w:0 model_func:dcgan_equal_size monitor:1

Note:

FID scoring is added, which was not used and reported at the time of publication