This tutorial is based on SimpleINNg v1.
CelebA-Dataset.ipynb
is used to download CelebA dataset and do some preprocessing.
SimpleINNg.ipynb
is used to train the network.
Currently this experimental code only contains training procedure. Images under ./data/intermediate
folder can be used to track the training process.
At first, some simple reference distribution is used to generate initial negative images. Afterwards, the positive images and initial negative images are fed into a series of cascades to train the model. Finally, we draw images from output distribution, which are the generated images of cascade actually.
One cascade means one independent model. In the training process for each cascade, there are several iterations. In each iteration, we train the discriminator at first, then use the generator to generate new negative images. Several batches are taken in discriminator and generator training.
In discriminator, all hidden layers (i.e. h0, h1, h2, h3, h4) in the networks are trainable. In generator, only input layer is trainable while all hidden layers are frozen.