Source code for the paper "Hyperbolic Neural Networks", https://arxiv.org/abs/1805.09112
Switch branches/tags
Nothing to show
Clone or download
Latest commit 45be2f6 Jul 17, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
prefix_10_dataset initial Jun 28, 2018
prefix_30_dataset initial Jun 28, 2018
prefix_50_dataset initial Jun 28, 2018
snli_dataset initial Jun 28, 2018
LICENSE initial Jun 28, 2018
README.md Update README.md Jul 17, 2018
binarize_snli_dataset.py initial Jun 28, 2018
hyp_rnn.py initial Jun 28, 2018
prefix_dataset.py initial Jun 28, 2018
rnn_impl.py initial Jun 28, 2018
util.py initial Jun 28, 2018
viz_mlr.py initial Jun 28, 2018

README.md

Hyperbolic Neural Networks

Python source code

We recommend reading our blog for an introduction to hyperbolic neural networks. Other related material can be accessed here.

  1. Prerequisites:
python3.5, Tensorflow 1.8, numpy, pickle, logging
  1. Generate the 3d MLR figure from our paper.
python3.5 viz_mlr.py
  1. Run the code to reproduce results from Table 1. Example of command that runs hyperbolic GRUs + one hyperbolic fully connected layer + hyperbolic MLR to embed each pair of sentences from the PREFIX10 dataset (assuming the location of this dataset is in the same directory as the source code):
CUDA_VISIBLE_DEVICES='' python3.5 hyp_rnn.py --base_name='' --dataset='PRFX10' --inputs_geom='hyp' --word_dim=5 --word_init_avg_norm=0.001   --cell_type='gru' --cell_non_lin='id'  --sent_geom='hyp' --bias_geom='hyp' --ffnn_geom='hyp' --ffnn_non_lin='id' --additional_features='dsq'  --dropout=1.0 --before_mlr_dim=5 --mlr_geom='hyp'  --reg_beta=0.0  --hyp_opt='rsgd' --lr_ffnn=0.01 --lr_words=0.1 --burnin='n' --proj_eps=1e-5 --batch_size=64 --root_path=./

The data needed in this code lives in the *_dataset folders and was generated as follows:

  • SNLI data was put in a binary format using the file binarize_snli_dataset.py and the original SNLI dataset

  • the PREFIX dataset was generated using the file prefix_dataset.py

References

If you find this code useful for your research, please cite the following paper in your publication:

@article{ganea2018hyperbolic,
  title={Hyperbolic Neural Networks},
  author={Ganea, Octavian-Eugen and B{\'e}cigneul, Gary and Hofmann, Thomas},
  journal={arXiv preprint arXiv:1805.09112},
  year={2018}
}