Official code to supplement the paper Self-supervised Disentanglement of Modality-specific and Shared Factors Improves Multimodal Generative Models published at GCPR 2020. This repository contains a pytorch implementation of the disentangling multimodal variational autoencoder (DMVAE) and the code to run the experiments from our paper.
# set up environment
$ conda env create -f environment.yml # install dependencies
$ conda activate dmvae # activate environment
$ cd mmmnist
$ ./run_jobs # create dataset and run experiment
$ tensorboard --logdir runs/tmp # monitor training
$ cd mnist_svhn
$ python make_mnist_svhn.py # create dataset
$ ./run_jobs # run experiment
$ tensorboard --logdir runs/tmp # monitor training
The tensorboard logs contain a lot of metrics (likelihood values,
classification accuracies, etc.), but not the complete evaluation; for
instance, they do not include the coherence values nor the the unconditionally
generated samples and FID values with ex-post density estimation. To compute
these, run the post-hoc analysis using the script post_hoc_analysis.py
or,
more conveniently, using the bash script post_hoc_analysis_batch
as follows:
$ ./post_hoc_analysis_batch <path_to_experiment> <logdir>
where path_to_experiment
is the directory of the experiment (e.g.,
$PWD/mmmnist
) and logdir
denotes directory with the logfiles for the
respective experiment (e.g., $PWD/mmmnist/runs/tmp/version_x
). Results from
the post-hoc analysis are saved to the respective logdir
. There, you will
find quantitative results in results.txt
and qualitative results in the form
of png images.
If you find this project useful, please cite our paper:
@article{daunhawer2020dmvae,
author = {Imant Daunhawer and
Thomas M. Sutter and
Ricards Marcinkevics and
Julia E. Vogt},
title = {Self-supervised Disentanglement of Modality-Specific and Shared Factors
Improves Multimodal Generative Models},
booktitle = {German Conference on Pattern Recognition},
year = {2020},
}