A minimal pytorch implementation of VAE, IWAE, and MIWAE.
We followed the experimental details of the IWAE paper.
You should be able to run experiments right away. First create a virtual environment using pipenv:
pipenv install
To run experiments, you simply have to use:
pipenv run python main.py <options>
For original VAE:
pipenv run python main.py
To also make figures (reconstruction, samples):
pipenv run python main.py --figs
For IWAE with 5 importance samples:
pipenv run python main.py --importance_num=5
For MIWAE(16, 4):
pipenv run python main.py --mean_num=16 --importance_num=4
See the config file for more options.
Method | NLL (this repo) | NLL (IWAE paper) | NLL (MIWAE paper) | comments |
---|---|---|---|---|
VAE | 87.01 | 86.76 | - | |
MIWAE(5, 1) | 86.45 | 86.47 | - | listed as VAE with k=5 |
MIWAE(1, 5) | 85.18 | 85.54 | - | listed as IWAE with k=5 |
MIWAE(64, 1) | 86.07 | - | 86.21 | listed as VAE |
MIWAE(16, 4) | 84.99 | - | - | |
MIWAE(8, 8) | 84.69 | - | 84.97 | |
MIWAE(4, 16) | 84.52 | - | 84.56 | |
MIWAE(1, 64) | 84.37 | - | 84.52 | listed as IWAE |