Impact Factor 3.074

The world's most-cited Neurosciences journals

Technology Report ARTICLE Provisionally accepted The full-text will be published soon. Notify me

Front. Neuroinform. | doi: 10.3389/fninf.2018.00089

BindsNET: A machine learning-oriented spiking neural networks library in Python

 Hananel Hazan1*,  Daniel J. Saunders1*, Hassaan Khan1, Darpan T. Sanghavi1,  Hava T. Siegelmann1 and  Robert Kozma1
  • 1Computer Science, College of Information and Computer Sciences, University of Massachusetts Amherst, United States

The development of spiking neural network simulation software is a critical component enabling the modeling of neural systems and the development of biologically inspired algorithms. Existing software frameworks support a wide range of neural functionality, software abstraction levels, and hardware devices, yet are typically not suitable for rapid prototyping or application to problems in the domain of machine learning. In this paper, we describe a new Python package for the simulation of spiking neural networks, specifically geared towards machine learning and reinforcement learning. Our software, called \texttt{BindsNET}, enables rapid building and simulation of spiking networks and features user-friendly, concise syntax. \texttt{BindsNET} is built on the \texttt{PyTorch} deep neural networks library, facilitating the implementation of spiking neural networks on fast CPU and GPU computational platforms. Moreover, the \texttt{BindsNET} framework can be adjusted to utilize other existing computing and hardware backends; e.g., \texttt{TensorFlow} and \texttt{SpiNNaker}. We provide an interface with the OpenAI \texttt{gym} library, allowing for training and evaluation of spiking networks on reinforcement learning environments. We argue that this package facilitates the use of spiking networks for large-scale machine learning problems and show some simple examples by using \texttt{BindsNET} in practice. \blfootnote{\texttt{BindsNET} code is available at \texttt{https://github.com/Hananel-Hazan/bindsnet}. To install the version of the code used for this paper, use \texttt{pip install bindsnet=0.2.1}.}

Keywords: GPU-computing, Spiking Network, PyTorch, Machine Laerning, Python (programming language), reinforcement learning (RL).

Received: 20 Jun 2018; Accepted: 13 Nov 2018.

Edited by:

Andrew P. Davison, FRE3693 Unité de Neuroscience, Information et Complexité (UNIC), France

Reviewed by:

Timothée Masquelier, Center for the National Scientific Research (CNRS), France
Jonathan Binas, Montreal Institute for Learning Algorithm (MILA), Canada  

Copyright: © 2018 Hazan, Saunders, Khan, Sanghavi, Siegelmann and Kozma. This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.

* Correspondence:
Dr. Hananel Hazan, College of Information and Computer Sciences, University of Massachusetts Amherst, Computer Science, Amherst, 31905, United States, hananel@hazan.org.il
Mr. Daniel J. Saunders, College of Information and Computer Sciences, University of Massachusetts Amherst, Computer Science, Amherst, 31905, United States, djsaunde@cs.umass.edu