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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file genni-1.0.3.tar.gz.

File metadata

  • Download URL: genni-1.0.3.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.6 Linux/5.9.10-zen1-1-zen

File hashes

Hashes for genni-1.0.3.tar.gz
Algorithm Hash digest
SHA256 5598aa05752a98362aad4e270e50b5e61df05eaa8fa89af814a154422510a3ce
MD5 85b25c1214ffb599c246e2b4f143401b
BLAKE2b-256 d30848f2ba38d381be4b317ced5cab6a839e98adecd9dd9ac47271e69aafaa5f

See more details on using hashes here.

File details

Details for the file genni-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: genni-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.8.6 Linux/5.9.10-zen1-1-zen

File hashes

Hashes for genni-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7626d3017b149c90d8b64223a50c9cbb0fdc44ba749ebb291619c50503264c63
MD5 4a7e4bb563ade5165a9f1f3fa1fa5042
BLAKE2b-256 13882c734cb0099b96d4bd22864b5222ce92b19e4c3fc147925726eb11cc81f5

See more details on using hashes here.

Supported by

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