/sngan-projection-notebook

A Tensorflow 2 implementation of SNGAN and Projection Discriminator

Primary LanguageJupyter NotebookMIT LicenseMIT

SNGAN-Projection Tensorflow

This is a Unofficial TF2.0 implementation of Spectral Normalization for Generative Adversarial Networks and cGANs with Projection Discriminator.

Official implementation is available here

Foods showcase

Dataset

There are Food-101and MNIST training examples.

I found that it is easier to train 128 * 128 resolutions with dataset which has fewer classes and more examples. For example, I failed to train 64 * 64 res model with tiny-image-net(200 classes with 500 images in each classes) and stanford-dogs(120 classes with 20,580 images). However, I can get relative good result in Foods-101(101 classes and 101,000 images)

Environments

  • Python 3
  • jupyter or jupyterlab
  • numpy
  • matplotlib
  • tensorflow 2.0

How to Run

  1. Download the dataset you want.

  2. Clone this repo, then use Juypter Notebook or Lab to open the *.ipynb file.

  3. Modify the DATASET_PATH, and the parts with Needs to be modified in the Prepare dataset section.

Results

Foods:

  • 128 * 128 resolutions
  • batch size: 16
  • noise dimension: 128
  • 430k iterations

Foods showcase

MNIST

  • 28 * 28 resolutions
  • batch size: 64
  • noise dimension: 100
  • 100k iterations

MNIST showcase

Acknowledges

Official implementation, https://github.com/pfnet-research/sngan_projection

crcrpar's repo, https://github.com/crcrpar/pytorch.sngan_projection