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, making it easier to develop biologically inspired algorithms for machine learning and reinforcement learning. It bridges the gap between neuroscience-style simulations (which often rely on complex differential equations) and modern machine learning frameworks by approximating those dynamics using difference equations that run efficiently on CPUs and GPUs.

How it works

The library leverages PyTorch Tensor functionality to handle the mathematical operations required for SNN simulations. Instead of solving ordinary differential equations (ODEs) directly, it converts them into difference equations solved at short, regular intervals. This allows the project to repurpose standard PyTorch functions—such as convolution and pooling—within SNN architectures. It specifically implements spike-timing-dependent plasticity (STDP), a biological learning rule where synaptic weights are adjusted based on the relative timing of neuron spikes.

Who it’s for

It is designed for researchers and developers interested in neuromorphic computing, biologically inspired machine learning, and the application of SNNs to tasks like data clustering, discrimination, and reinforcement learning agents.

Highlights

  • Hardware Acceleration: Full support for CPU and GPU computation via PyTorch.
  • Biologically Plausible Learning: Built-in support for STDP to modify synaptic weights.
  • ML/RL Integration: Includes starter scripts for unsupervised, supervised, and reinforcement learning (e.g., integrating with OpenAI Gym).
  • Performance: Benchmarked to perform efficiently against other SNN libraries like BRIAN2 and PyNEST.

Related

  • Project
  • Project
  • Project
  • Project
  • Project