Skip to main content

GENNI: Visualising the Geometry of Equivalences for Neural Network Identifiability

Project description

GENNI: Visualising the Geometry of Equivalences for Neural Network Identifiability

Disclaimer

This is code associated with the paper "GENNI: Visualising the Geometry of Equivalences for Neural Network Identifiability," published in the NeurIPS Workshop on Differential Geometry meets Deep Learning 2020.

If you have any questions, please feel free to reach out to us or make an issue.

Installing

Genni is available from PyPI here. In order to install simply use pip

pip install genni

Usage

In order to use the package, please set genni.yml in the top directory of your project and add / set the variable genni_home pointing to where genni should keep all of the generated files.

Generating a run

In order to calculate the approximate equivalence classes of parameters of your network architecture that leads to the same function you first need to create an experiment. An example file of how to do this can be found in scripts/experiment.py which has some architectures predefined, but you can add your own if you want to by looking at how the file is designed.

Generating an experiment can be done by calling

python scripts/experiment.py

Getting directories and run IDs

After generating an experiment this will populate ${GENNI_HOME}/experiment with a directory having as a name the timestamp of when it was run. An easy way to look at the generated experiments is use the tree command. Below is an example output when running this after generating a couple of experiments

tree $GENNI_HOME/experiments -d -L 3

with the output

experiments
└── Nov09_19-52-12_isak-arch
    ├── models
       └── 1604947934.637504
    └── runs
        └── 1604947934.637504

where Nov09_19-52-12_isak-arch is the identifier of the experiment and 1604947934.637504 is an ID of a hyperparameter setting of this experiment.

Plotting

We have prepared a notebook called notebooks/SubspaceAnalysis.ipynb showing how to

  • Load your experiment together with necessary paths and experiment ids
  • Compute grids and values for plotting
  • Different ways of visualising the approximate equivalence classes in the form of a
    • Contour plot
    • 3d iso-surface plot
    • UMAP projected 2d plot of 3d iso-surface

Citing

If you use GENNI anywhere in your work, please cite use using

@article{2020,
    title={GENNI: Visualising the Geometry of Equivalences for Neural Network Identifiability},
    author={Lengyel, Daniel and Petangoda, Janith and Falk, Isak and Highnam, Kate and Lazarou, Michalis and Kolbeinsson, Arinbjörn and Deisenroth, Marc Peter and Jennings, Nicholas R.},
    booktitle={NeurIPS Workshop on Differential Geometry meets Deep Learning},
    year={2020}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genni-1.0.3.tar.gz (17.6 kB view hashes)

Uploaded Source

Built Distribution

genni-1.0.3-py3-none-any.whl (19.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page