Skip to main content

Visualisation tool for the Neuromorphic Intermediate Representation

Project description

Neuromorphic Intermediate Representation Visualisation Tool

Turn your NIR definitions into a nice graph, the original publication serving as a template.

Customise your node colour preferences in style.yml, and quickly generate graphs from your neuromorphic networks.

This work is in progress.

Running Example (Jupyter Notebook)

By running the following code (from a notebook),

import nir
import nirviz
import numpy as np


a = np.random.randn(2)
ir = nir.NIRGraph(
    nodes={
        "input": nir.Input(input_type=np.array([2])),
        "affine1": nir.Affine(weight=np.zeros((2,2)), bias=False),
        "cu1": nir.CubaLIF(tau_mem=a, tau_syn=a, r=a, v_leak=a, v_threshold=a, v_reset=a),
        "affine_rec": nir.Affine(weight=np.zeros((2,2)), bias=False),
        "affine2": nir.Affine(weight=np.zeros((2,2)), bias=False),
        "cu2": nir.CubaLIF(tau_mem=a, tau_syn=a, r=a, v_leak=a, v_threshold=a, v_reset=a),
        "output": nir.Output(output_type=np.array([2]))
    },
    edges=[("input", "affine1"), ("affine1", "cu1"), ("affine_rec", "cu1"),  ("cu1", "affine_rec"), ("cu1", "affine2"), ("affine2", "cu2"), ("cu2", "output")])

viz = nirviz.visualize(ir)
viz.show()

You would get the following visualisation

nirviz output

Similar to Figure 3 of the publication.

Figure 3 of NIR paper for comparison to output

Running example (CLI)

To convert a saved NIR graph (e.g. srnn.nir) to a PNG or SVG, you can use one of the following commands:

python -m nirviz srnn.nir              # SVG -> stdout
python -m nirviz srnn.nir img/srnn.png # PNG -> file
python -m nirviz srnn.nir img/srnn.svg # SVG -> file

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

nirviz-0.1.2.tar.gz (71.6 kB view details)

Uploaded Source

Built Distribution

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

nirviz-0.1.2-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file nirviz-0.1.2.tar.gz.

File metadata

  • Download URL: nirviz-0.1.2.tar.gz
  • Upload date:
  • Size: 71.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for nirviz-0.1.2.tar.gz
Algorithm Hash digest
SHA256 84eb11919e78fe8dd013e4785cdb09c58ed174f7e2ab223a075de560c59f22b7
MD5 4489c892c1d0fdb3713fedd7db1574a8
BLAKE2b-256 d827dd63d666da3bc851db57dd93660c139a408af9328153242ad609f58fcc66

See more details on using hashes here.

Provenance

The following attestation bundles were made for nirviz-0.1.2.tar.gz:

Publisher: pypi.yml on open-neuromorphic/nirviz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nirviz-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: nirviz-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for nirviz-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3363bd1593295a615b0b21d97587c028c3e692bc4dae2a60b01eeb2c955eca4c
MD5 0ab7155a8a8ee0e7453528432b3b90fc
BLAKE2b-256 525811596f0aab6f186f66bf351bf816f685a5c0be8136d4a8ddd0ae16d2938b

See more details on using hashes here.

Provenance

The following attestation bundles were made for nirviz-0.1.2-py3-none-any.whl:

Publisher: pypi.yml on open-neuromorphic/nirviz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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