Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joeybose/HyperbolicNF
ICML 2020 Paper: Latent Variable Modelling with Hyperbolic Normalizing Flows
https://github.com/joeybose/HyperbolicNF
Last synced: 3 months ago
JSON representation
ICML 2020 Paper: Latent Variable Modelling with Hyperbolic Normalizing Flows
- Host: GitHub
- URL: https://github.com/joeybose/HyperbolicNF
- Owner: joeybose
- Created: 2020-06-08T20:02:55.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T04:20:39.000Z (almost 2 years ago)
- Last Synced: 2024-07-04T01:02:16.116Z (4 months ago)
- Language: Python
- Homepage:
- Size: 20.2 MB
- Stars: 54
- Watchers: 3
- Forks: 7
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Normalizing Flows for Hyperbolic Spaces and Beyond!
![alt text](https://github.com/joeybose/HyperbolicNF/blob/master/hyperflow_animation_large.gif "Hyperbolic NF")
This repository contains code for reproducing results for ICML 2020 paper.
"Latent Variable Modeling with Hyperbolic Normalizing Flows", by:
Avishek Joey Bose, Ariella Smofsky, Renjie Liao, Prakash Panangaden, William L. HamiltonArXiv Link: https://arxiv.org/pdf/2002.06336.pdf
If this repository is helpful in your research, please consider citing us.```
@article{bose2020latent,
title={Latent Variable Modelling with Hyperbolic Normalizing Flows},
author={Bose, Avishek Joey and Smofsky, Ariella and Liao, Renjie and Panangaden, Prakash and Hamilton, William L},
journal={Proceedings of the 37th International Conference on Machine Learning},
year={2020}
}
```## Installation
Main Python Packages:
- Pytorch Geometric: https://github.com/rusty1s/pytorch_geometric
Follow the installation instructions carefully for this package! Make sure all
your environment Path variables are exactly as outlined otherwise you will get
weird symbol errors
- Pytorch 1.5
- WandB for loggingOther packages can be found in Requirements.txt but not all from that list are needed.
Download the datasets:
`python -m data.download`
## Running Hyperbolic VAE
`python main.py --dataset=mnist --batch_size=100 --epochs=100 --model=hyperbolic --wandb --namestr="MNIST 2-HyperbolicVAE"`## Running Euclidean Flow
`python main.py --dataset=mnist --batch_size=100 --epochs=100 --model=euclidean --flow_model=RealNVP --wandb --namestr="MNIST 2-Hyperbolic 2-RealNVP"`## Running Flow Hyperbolic VAE
`python main.py --dataset=mnist --batch_size=100 --epochs=100 --model=hyperbolic --flow_model=TangentRealNVP --n_blocks=4 --wandb --namestr="MNIST 2-Hyperbolic 4-TangentRealNVP"`## Reference code repos
1. "A Wrapped Normal Distribution on Hyperbolic Space for Gradient-Based
Learning": https://github.com/pfnet-research/hyperbolic_wrapped_distribution
2. "Mixed-Curvature Variational Autoencoder":
https://www.dropbox.com/s/tzilf229js1gsqu/mvae.zip?dl=0
3. "Hyperbolic Neural Networks": https://github.com/dalab/hyperbolic_nn
4. "Hyperbolic Graph Convolutional Neural Networks": https://github.com/HazyResearch/hgcn