Skip to content

Latest commit

 

History

History
50 lines (29 loc) · 1.87 KB

README.md

File metadata and controls

50 lines (29 loc) · 1.87 KB

BigGAN Tensorflow TPU

Simple Tensorflow TPU implementation of "Large Scale GAN Training for High Fidelity Natural Image Synthesis" (BigGAN)

I (David Mack) have been modifying this network to allow for configuration of its self-attention, to facilitate experiments into the effectiveness of different self-attention architectures.

main

Implementation notes/issues

  • TODO: Implement BigGAN-deep architecture (simpler class embedding, deeper resblock)
  • TODO: Explore whether orthogonal initialization (paper's method) should be used instead of random normal initialization (current implementation)
  • TODO: Implement exponential average parameter/batch norm sampling during prediction and evaluation
  • TODO: Find bug in inception score and implement FID

Usage

Building the data

For ImageNet, use TensorFlow's build scripts to create TFRecord files of your chosen image size (e.g. 128x128). --tfr-format inception

You can also use the data build script from NVidia's Progressive Growing of GANs. --tfr-format progan

Training

You can train on a Google TPU by setting the name of your TPU as an env var and running one of the training scripts. For example,

  • ./launch_train_tpu_sagan.sh --tpu-name node-1

You need to have your training data stored on a Google cloud bucket.

Architecture

128x128

256x256

512x512

Contributing

You're very welcome to! Submit a PR or contact the author(s)

Authors

Junho Kim, David Mack