Wasserstein GAN

A few notes

The first time running on the LSUN dataset it can take a long time
(up to an hour) to create the dataloader. After the first run a small
cache file will be created and the process should take a matter of
seconds. The cache is a list of indices in the lmdb database (of LSUN)

The only addition to the code (that we forgot, and will add, on the paper) are the lines 166-169 of main.py.
These lines act only on the first 25 generator iterations or very
sporadically (once every 500 generator iterations). In such a case, they
set the number of iterations on the critic to 100 instead of the
default 5. This helps to start with the critic at optimum even in the
first iterations. There shouldn't be a major difference in performance,
but it can help, especially when visualizing learning curves (since
otherwise you'd see the loss going up until the critic is properly
trained). This is also why the first 25 iterations take significantly
longer than the rest of the training as well.

If your learning curve suddenly takes a big drop take a look at this.
It's a problem when the critic fails to be close to optimum, and hence
it's error stops being a good Wasserstein estimate. Known causes are
high learning rates and momentum, and anything that helps the critic get
back on track is likely to help with the issue.