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.