This repo implements the Wasserstein Variational Auto-Encoder (VAE) as described in this paper. Compared to other repos it also implements a probabilistic encoder, which makes the algorithm more robust with respect to the dimension of the latent space, as described here.
There are two notebooks.
This notebook randomly samples data points from a cycle and adds some gaussian noise, so that the variation of the data is contained in a one-dimensional manifold.
The second notebook implements a CNN encoder/decoder as described in the original paper.
- distributions_dists.py implements the MMD distance.
- data.py defines a torch dataset with the circle data.
- vae.py contains the encoders and decoders.