Nengo is a Python library for building and simulating large-scale neural models. Nengo can create sophisticated spiking and non-spiking neural simulations with sensible defaults in a few lines of code. Yet, Nengo is highly extensible and flexible. You can define your own neuron types and learning rules, get input directly from hardware, build and run deep neural networks, drive robots, and even simulate your model on a completely different neural simulator or neuromorphic hardware.
This fork includes feature/fix and experimental branches by atait. The main branch is "atait-dev". Individual branches that have been merged are kept around in case they lead to a pull request. Branches are described here
Speed up some core functionality, such as
- precomputing sparse matrices
- storing results of missed dictionary lookups.
- One new synapse for 1-input, 1-output only. It uses natural float variables instead of 1x1 np arrays of floats
- just-in-time compile of a workhorse linear operation
Neuromorphic photonic networks using silicon photonic weight banks
Solving an ordinary differential equation (Lorenz) with models of a photonic modulator neuron. Includes files for reproducing the conventional benchmark in matlab and comparing the two.
In the nengo package, there is a new neuron for a Mach-Zehnder photonic neuron. Everything else is in the examples directory.
Nengo depends on NumPy, and we recommend that you install NumPy before installing Nengo. If you're not sure how to do this, we recommend using Anaconda.
To install Nengo:
pip install nengo
If you have difficulty installing Nengo or NumPy, please read the more detailed Nengo installation instructions first.
If you'd like to install Nengo from source, please read the developer installation instructions.
Nengo is tested to work on Python 3.6 and above. Python 2.7 and Python 3.4 were supported up to and including Nengo 2.8.0. Python 3.5 was supported up to and including Nengo 3.1.
Here are six of many examples showing how Nengo enables the creation and simulation of large-scale neural models in few lines of code.
- 100 LIF neurons representing a sine wave
- Computing the square across a neural connection
- Controlled oscillatory dynamics with a recurrent connection
- Learning a communication channel with the PES rule
- Simple question answering with the Semantic Pointer Architecture
- A summary of the principles underlying all of these examples
Usage and API documentation can be found at https://www.nengo.ai/nengo/.
To build the documentation yourself, run the following command:
python setup.py build_sphinx
This requires Pandoc to be installed, as well as some additional Python packages. For more details, see the Developer Guide.
Information for current or prospective developers can be found at https://www.nengo.ai/contributing/.
Questions relating to Nengo, whether it's use or it's development, should be asked on the Nengo forum at https://forum.nengo.ai.