1. Installing Norse

We have chosen to build Norse with new Python features such as type hints. For that reason we require Python version 3.7 or higher. If this is a problem, it is recommended to install Norse via Docker, as described below.

Norse builds on top of the PyTorch deep learning library, which is also our primary dependency. This has the benefit that your models are hardware accelerated, providing the prerequisites are met.

1.1. Required dependencies

To install Norse, you need the following two dependencies:

  1. pip - the Python package manager

    • This is preinstalled in most Linux and Unix distros

    • Note that Norse requires Python >= 3.7

  2. torch - the deep learning accelerator

1.2. Installing Norse

Note that the following commands require access to a command line interface.

1.2.1. Installing with pip

pip install norse

1.2.2. Installing from Conda

conda install -c norse norse

1.2.3. Installing with Docker

docker pull quay.io/norse/norse
# Or, using CUDA
docker pull quay.io/norse/norse:latest-cuda

1.2.4. Installing from source

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

1.3. Optional dependencies

Some of the tasks require additional dependencies like Pytorch Lightning, Torchtext and Torchvision. We also offer support for Tensorboard to make it easier to visualise the training and introspect models.

1.4. Running Norse notebooks with Docker

Docker creates a closed environment for you, which also means that the network and filesystem is isolated. Without going into details, here are three steps you can take to create a Jupyter Notebook environment with Docker. You will have to replace /your/directory with the full path to your current directory.

docker run -it -p 8888:8888 -v /your/directory:/work quay.io/norse/norse bash
pip3 install jupyter
jupyter notebook --notebook-dir=/work --ip 0.0.0.0 --allow-root

The command line will now show you a URL you can copy-paste into your browser. And voila!

1.4.1. GPU acceleration in Docker

If you would like to have GPU hardware acceleration when running the latest-cuda version of the docker container, you will have to enable the NVIDIA runtime, as described here: https://developer.nvidia.com/nvidia-container-runtime.

For more information on hardware acceleration, please refer to our page on {ref}(page-hardware).

1.5. Installation troubleshooting

Below follows a list of known problems that hopefully address your problem. If not, please do not hesitate to reach out either by

Because we are relying on optimised C++ for some of the hotspots in the library, you will need to download and install CMake and PyTorch before you can install Norse. For that reason, we recommend following the PyTorch “Get Started” guide as the first step.

You might also have to install Python headers if you have not already done that. In Debian-based distros (like Ubuntu), this can be done by running apt install python3-dev.

1.5.1. Common problems

ImportError: … /norse_op.so: undefined symbol: ZN2at5addmmERKNS_6TensorES2_S2_RKN3c106ScalarES6

This is likely because an existing, incompatible version of PyTorch is interferring with the installation. Try to

  1. remove PyTorch (pip uninstall torch),

  2. install torch by following the official guide at pytorch.org, and

  3. reinstall Norse with your preferred method

See this issue for more information: https://github.com/norse/norse/issues/280

UnsatisfiableError: The following specifications were found to be incompatible with each other

This can happen during installation from Conda of Norse<=0.07. A solution is to add the conda-forge channel, like so: conda install -c norse -c conda-forge norse

Or, when creating an environment: conda create -d -c norse -n temptest2 python==3.9 norse==0.0.7