Skip to content

A curated list of awesome cns frameworks, libraries, and software + First class pure python Tutorial Series for Spiking Neural Networks 🔥

License

Notifications You must be signed in to change notification settings

realamirhe/awesome-computational-neuro-science

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computational Neuro Science

Awesome

Tutorials

  • tutorial Series on computational-neuroscience & spiking-neural-network
  • Spiking-Neural-Network is the pure python implementation of hardware efficient spiking neural network. It includes the modified learning and prediction rules which could be released on hardware and are energy efficient. Aim is to develop a network which could be used for on-chip learning as well as prediction.

tools

  • Auryn is a C++ simulator for recurrent spiking neural networks with synaptic plasticity. It comes with the GPLv3. SIMULATOR
  • Bee is an open source simulator for Spiking Neural Network (SNN) simulator, freely available, specialised in Liquid State Machine (LSM) systems with its core functions fully implemented in C. SIMULATOR
  • BindsNET is a Python package used for simulating spiking neural networks (SNNs) on CPUs or GPUs using PyTorch Tensor functionality. PACKAGE promote-badge
  • BrainPy is an integrative framework for computational neuroscience and brain-inspired computation based on Just-In-Time (JIT) compilation (built on the top of JAX and Numba). FRAMEWORK
  • Brian2 is a clock-driven simulator for spiking neural networks. SIMULATOR
  • DRL with Population Coded Spiking Neural Network the PyTorch implementation of the Population-coded Spiking Actor Network (PopSAN) that integrates with both on-policy (PPO) and off-policy (DDPG, TD3, SAC) DRL algorithms for learning optimal and energy-efficient continuous control policies. PACKAGE
  • Encoders is a Python utility package of encoding algorithms that encode real-valued data into spike trains for using in Spiking Neural Networks. UTILITY
  • GeNN compiles SNN network models to NVIDIA CUDA to achieve high-performing SNN model simulations. PERFORMANCE
  • Long short-term memory Spiking Neural Networks (LSNN) provides a Tensorflow 1.12 library and a tutorial to train a recurrent spiking neural networks (LSNN). The library focuses on a single neuron and gradient model. LIBRARY
  • Nengo PyTorch a thin wrapper for PyTorch that adds a single voltage-only spiking model. The approach is independent from the Nengo framework. LIBRARY
  • Nengo is a neuron simulator, and Nengo-DL is a deep learning network simulator that optimised spike-based neural networks based on an approximation method suggested by Hunsberger and Eliasmith (2016). SIMULATOR
  • Neurapse is a package in python which implements some of the fundamental blocks of SNN and is written in a manner so that it can easily be extended and customized for simulation purposes. PACKAGE
  • Neuron Simulation Toolkit (NEST) constructs and evaluates highly detailed simulations of spiking neural networks. This is useful in a medical/biological sense but maps poorly to large datasets and deep learning. SIMULATOR
  • Norse is Pytorch expansion which aims to exploit the advantages of bio-inspired neural components, which are sparse and event-driven - a fundamental difference from artificial neural networks
  • PyNN is a simulator-independent language for building neuronal network models. It does not currently provide mechanisms for optimisation or arbitrary synaptic plasticity. SIMULATOR
  • PySNN is a Spiking neural network (SNN) framework written on top of PyTorch for efficient simulation of SNNs both on CPU and GPU. FRAMEWORK
  • PymoNNto The "Python modular neural network toolbox" allows you to create different Neuron-Groups, define their Behaviour and connect them with Synapse-Groups. PACKAGE promote-badge
  • Rockpool is a Python package developed by SynSense for training, simulating and deploying spiking neural networks. It offers both JAX and PyTorch primitives. PACKAGE
  • SNN toolbox is a framework to transform rate-based artificial neural networks into spiking neural networks, and to run them using various spike encodings. FRAMEWORK
  • Sinabs is a python library for development and implementation of Spiking Convolutional Neural Networks (SCNNs). it provides support to import CNN models implemented in torch conveniently to test their spiking equivalent implementation. LIBRARY
  • SlayerPyTorch is a Spike LAYer Error Reassignment library, that focuses on solutions for the temporal credit problem of spiking neurons and a probabilistic approach to backpropagation errors. It includes support for the Loihi chip. PACKAGE
  • SpikeTorch Python package used for simulating spiking neural networks (SNNs) in PyTorch. successor to this project. PACKAGE
  • SpikingJelly is an open-source deep learning framework for Spiking Neural Network (SNN) based on PyTorch. FRAMEWORK
  • SpykeTorch High-speed simulator of convolutional spiking neural networks with at most one spike per neuron. PACKAGE
  • Tonic is a tool to facilitate the download, manipulation and loading of event-based/spike-based data. It's like PyTorch Vision but for neuromorphic data! LIBRARY
  • WheatNNLeek A Rust and common-lisp spiking neural network system. LIBRARY
  • cuSNN is a C++ library that enables GPU-accelerated simulations of large-scale Spiking Neural Networks (SNNs). LIBRARY
  • decolle implements an online learning algorithm described in the paper "Synaptic Plasticity Dynamics for Deep Continuous Local Learning (DECOLLE)" by J. Kaiser, M. Mostafa and E. Neftci. ALGORITHMS, UTILITY
  • s2net is based on the implementation presented in SpyTorch, but implements convolutional layers as well. It also contains a demonstration how to use those primitives to train a model on the Google Speech Commands dataset. LIBRARY
  • snnTorch is a Python package for performing gradient-based learning with spiking neural networks. It extends the capabilities of PyTorch, taking advantage of its GPU accelerated tensor computation and applying it to networks of spiking neurons. PACKAGE
  • spikeflow Python library for easy creation and running of spiking neural networks in tensorflow. LIBRARY

Papers

  • "Convolutional spiking neural networks (SNN) for spatio-temporal feature extraction". Github repository
  • "Enabling Deep Spiking Neural Networks with Hybrid Conversion and Spike Timing Dependent Backpropagation" published in ICLR, 2020. Github repository

Books

  • Miller, P. (2018). "An Introductory Course in Computational Neuroscience" (1st Edition). MIT Press. Buy.
  • Arbib, M.A. & Bonaiuto, J.J. (2016). "From Neuron to Cognition via Computational Neuroscience". MIT Press. Buy.
  • Bear, M.F., Connors, B.W., Paradiso, M.A. (2015). "Neuroscience: Exploring the Brain" (4th Edition). Jones & Bartlett Learning. Buy.
  • Eliasmith, C. (2015). "How to Build a Brain: A Neural Architecture for Biological Cognition" (Reprint Edition). Oxford University Press. Buy.
  • Gerstner, W., Kistler, W.M., Naud, R., Paninski, L. (2014). "Neuronal Dynamics: From Single Neurons to Networks and Models of Cognition" (1st Edition). Cambridge University Press. Read Online. Buy.
  • Trappenberg, T. (2010). "Fundamentals of Computational Neuroscience" (2nd Edition). Oxford University Press. Buy.
  • Dayan, P. & Abbott, L.F. (2005). "Theoretical Neuroscience: Computational and Mathematical Modeling of Neural Systems" (1st Edition). MIT Press. Read Online. Buy.

Logo icon made by Freepik from www.flaticon.com
List of tools are highly inspried by Norse