BindsNET/bindsnet

Simulation of spiking neural networks (SNNs) using PyTorch.

What it solves

BindsNET provides a way to simulate spiking neural networks (SNNs) using PyTorch, bridging the gap between biologically inspired neural dynamics and modern machine learning. It allows researchers to develop and test algorithms for machine learning and reinforcement learning using neuron models that mimic biological spiking behavior rather than traditional artificial neurons.

How it works

The library converts the ordinary differential equations (ODEs) that describe biological neuron dynamics into difference equations, solving them at short, regular intervals. By building on PyTorch, it leverages torch.Tensor for efficient computation on both CPUs and GPUs and repurposes existing PyTorch functions (like convolution and pooling) to build SNN architectures.

Who it’s for

It is designed for researchers and practitioners in neuroscience and machine learning who are interested in biologically inspired algorithms, neuromorphic computing, and applying SNNs to tasks like data clustering, discrimination, and reinforcement learning.

Highlights

  • PyTorch Integration: Uses PyTorch tensors and functional modules for high-performance simulation on CPUs and GPUs.
  • Biologically Plausible Learning: Implements spike-timing-dependent plasticity (STDP) and other weight-changing rules to modify synaptic weights.
  • Versatile Applications: Supports unsupervised learning, supervised learning, and reinforcement learning (including integration with Gymnasium for environments like Atari Breakout).
  • Performance Benchmarked: Optimized to make efficient use of available hardware without requiring complex global preference settings.

Related

  • Project
  • Project
  • Project
  • Project
  • Project