This is a simple implementation of AC-GAN on the MNIST dataset, as introduced by Odena, et al., in Keras.
This represents a relatively happy medium between network complexity, ease of understanding, and performance. The samples generated (consult acgan-analysis.ipynb
for examples) are clear, consistent, and illustrate the power of the auxiliary classifier.
To run this, you should have Keras and either Theano or TensorFlow (preferably TensorFlow) installed. Also, it is strongly advised that you use a GPU with CuDNN, as convolutions are rather slow on CPUs. If you do not have access to a dedicated GPU, I recommend looking at the Spot Instances on AWS.
You can simply run python mnist_acgan.py
, and it will create:
params_discriminator_epoch_{{epoch_number}}.hdf5
, the discriminator network parametersparams_generator_epoch_{{epoch_number}}.hdf5
, the generator network parametersplot_epoch_{{epoch_number}}_generated.png
, a plot of some generated images
After this is done, you can click through acgan-analysis.ipynb
to generate more images and understand the system performance.