Table of Contents
Fetching ...

Inferno: An Extensible Framework for Spiking Neural Networks

Marissa Dominijanni

TL;DR

The architecture of Inferno is described and it is shown how the design decisions made by Inferno facilitate easily implementing the new methods of Nadafian and Ganjtabesh in delay learning with spike-timing dependent plasticity.

Abstract

This paper introduces Inferno, a software library built on top of PyTorch that is designed to meet distinctive challenges of using spiking neural networks (SNNs) for machine learning tasks. We describe the architecture of Inferno and key differentiators that make it uniquely well-suited to these tasks. We show how Inferno supports trainable heterogeneous delays on both CPUs and GPUs, and how Inferno enables a "write once, apply everywhere" development methodology for novel models and techniques. We compare Inferno's performance to BindsNET, a library aimed at machine learning with SNNs, and Brian2/Brian2CUDA which is popular in neuroscience. Among several examples, we show how the design decisions made by Inferno facilitate easily implementing the new methods of Nadafian and Ganjtabesh in delay learning with spike-timing dependent plasticity.

Inferno: An Extensible Framework for Spiking Neural Networks

TL;DR

The architecture of Inferno is described and it is shown how the design decisions made by Inferno facilitate easily implementing the new methods of Nadafian and Ganjtabesh in delay learning with spike-timing dependent plasticity.

Abstract

This paper introduces Inferno, a software library built on top of PyTorch that is designed to meet distinctive challenges of using spiking neural networks (SNNs) for machine learning tasks. We describe the architecture of Inferno and key differentiators that make it uniquely well-suited to these tasks. We show how Inferno supports trainable heterogeneous delays on both CPUs and GPUs, and how Inferno enables a "write once, apply everywhere" development methodology for novel models and techniques. We compare Inferno's performance to BindsNET, a library aimed at machine learning with SNNs, and Brian2/Brian2CUDA which is popular in neuroscience. Among several examples, we show how the design decisions made by Inferno facilitate easily implementing the new methods of Nadafian and Ganjtabesh in delay learning with spike-timing dependent plasticity.
Paper Structure (30 sections, 8 equations, 7 figures)

This paper contains 30 sections, 8 equations, 7 figures.

Figures (7)

  • Figure 1: Entity relationship diagram showing object composition among the major components for modeling SNNs using Inferno. Numerical labels indicate the number of composed objects, where "0/1" indicates "zero or one" and "1+" indicates "one or more".
  • Figure 2: Representation of the flow of data (tensors) between different kinds of neural components. The "[mapping]" represents the internal logic unique to that (such as matrix multiplication with the learned weights). The $I_\text{inj}$ terms are optional and not supported by every , but represent current injected into the synapse. The classes and have singular names because each encapsulates a single tensor per state parameter. Each object may represent an arbitrary number of simulated neurons and synapses respectively.
  • Figure 3: Diagram of the model proposed by Diehl and Cook for classification on the MNIST dataset diehl_unsupervised_2015. The text shown in parenthesized monospace shows the Inferno class corresponding to the model component in the original work.
  • Figure 4: Each of the $\lfloor T / \Delta t \rfloor + 1$ time slices are stored contiguously in memory, and a pointer $p$ to the index at which $t = T$ is tracked and represents the next location to write to.
  • Figure 5: Visualization of the operation on a , where $a$, $b$, $c$, and $d$ are elements of the tensor at each time step, and $\Delta t = 1$ for simplicity. A $(T + 1) \times N$ record matrix is selected from with an $N \times D$ selector matrix, where $D$ is the number of samples to retrieve simultaneously, and each value is in the range $[0, T]$. The result matrix has the same shape as the latter, where $f$ is the interpolation function. Values are colored corresponding to the selection, where shading by multiple colors corresponds to multiple selections.
  • ...and 2 more figures