/disentanglement

Official repository for our ICLR 2021 paper Evaluating the Disentanglement of Deep Generative Models with Manifold Topology

Primary LanguagePython

Official repository for the ICLR 2021 paper Evaluating the Disentanglement of Deep Generative Models with Manifold Topology

Sharon Zhou, Eric Zelikman, Fred Lu, Andrew Y. Ng, Gunnar Carlsson, and Stefano Ermon
Computer Science & Math departments, Stanford University

Read the paper.

Setup

Requirements and environment files are in env/

Run

run_barcodes.py: iterate over various models and datasets to generate their corresponding persistence barcodes
run_vis_cov.py: run vis_cov.py for all datasets and decoder combinations, where vis_cov.py takes saved barcodes and produces W. RLT figures
run_gen_cov.py: run gen_cov.py for all datasets and decoder combinations, where gen_cov.py calculates the similarity matrices between two barcodes, then finds spectrally coclustered biclusters, and finally calculates the scores
parse_scores.py: aggregate the results of existing runs

Other utilities

global_models.py: encoders and decoders of various generative models
utils.py: collection of utilities for sampling, model-loading, conversions

args/: argument parsers/options for different models
datasets/: resources for handling our datasets
env/: requirements files, various pip/conda details
supplement/: scripts for some appendix experiments

External libraries

Geometry score, modified to include Wasserstein features: gs/
Disentanglement VAEs lib: disentangling_vae/
Pytorch GAN zoo: models/
StyleGAN resources: alae/
Various CelebA GAN implementations: celeba_gan/

Deprecated

Some deprecated code referring to transcoder may be present in certain files. This constitutes another set of experiments that we were running in parallel for mapping factors of variation to latents. Thus is research - perhaps future work ;)

Acknowledgements

We would like to thank Torbjorn Lundh and Samuel Bengmark for their helpful feedback and encouragement in the preparation of our manuscript.