Norse

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

https://github.com/norse/norse/workflows/Python%20package/badge.svg https://img.shields.io/pypi/v/norse https://img.shields.io/conda/v/norse/norse https://img.shields.io/discord/723215296399147089 https://app.codacy.com/project/badge/Grade/a9ab846fc6114afda4320badcb8a69c2 https://codecov.io/gh/norse/norse/branch/master/graph/badge.svg

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.

Method

Instructions

Prerequisite

From PyPi

pip install norse

Pip

From Conda

conda install -c norse norse

Conda

From Source

git clone https://github.com/norse/norse && python norse/setup.py install

Python

With Docker

docker pull quay.io/norse/norse

Docker

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