Norse is a library to do deep learning with spiking neural networks.

The purpose of this library is to exploit the advantages of bio-inspired neural components, who are sparse and event-driven - a fundamental difference from artificial neural networks. Norse expands on PyTorch, bringing you two advantages: a modern and proven infrastructure and deep learning-compatible components.

Read more in the Introduction to spikes and Working with Norse.

Getting started

To try Norse, the best option is to run our Jupyter Notebook Tutorials online.

Alternatively, install Norse and run one of the included tasks such as MNIST:

python -m norse.task.mnist

The Quickstart and Working with Norse pages show how to build your own models with Norse while explaining a few fundamental concepts around spiking neural networks.

Installing Norse

Note that we assume you are using Python version 3.7+, are in a terminal friendly environment, and have installed the necessary requirements, depending on your installation method. More detailed installation instructions are available here: Installing Norse.




From PyPi

pip install norse


From Conda

conda install -c norse norse


From Source

git clone && python norse/ install


With Docker

docker pull


Running Tasks

Norse comes with a number of example tasks, serving as short, self contained, correct examples SSCCE. They can be run by invoking the norse module from the base directory. More information and tasks are available at Running Tasks and in your console by typing: python -m norse.task.<task> --help, where <task> is one of the task names.

python3 -m norse.task.mnist

Read more in our Introduction to spikes and visit our Jupyter Notebook examples.

Advanced uses and opimizations

Norse is meant to be used as a library for spiking neural networks in customized deep learning models. This typically means porting other models to the spiking/temporal domain, extending existing models, or starting completely from scratch. All three use cases are motivated and briefly described in Working with Norse.

Unfortunately, spiking neural networks are resource intensive. The page on Hardware acceleration explains how to accelerate the simulations using dedicated hardware.

About Norse

Norse is a research project created by Christian Pehle and Jens E. Pedersen. Read more about why we created Norse in About Norse.

Table of contents

API Docs

Indices and tables