Skip to content
This repository has been archived by the owner on May 31, 2019. It is now read-only.
/ nengo-distilled Public archive

An example backend implementation for nengo

License

Notifications You must be signed in to change notification settings

nengo/nengo-distilled

Repository files navigation

NOTE: This project is no longer maintained

Many backends have been created since 2015, when this repository was made. We now recommend that new backend developers start from a real backend that is most similar to the new backend they want to develop. The list of existing backends can be found at https://www.nengo.ai/.

A distilled Nengo backend

This is an example backend implementation for Nengo.

It does not require any additional dependencies; instead, this backend is the reference backend distilled into the essential parts. As such, it is designed to be simpler, easier to understand, and easier to debug. If you're interested in writing your own Nengo backend, then this implementation is likely a better starting point than the reference backend.

nengo_distilled takes a neural model described using the Nengo framework, builds it into an actual neural simulation, and runs the simulation. For example:

import numpy as np
import nengo

# define the model
model = nengo.Network()
with model:
    stim = nengo.Node(np.sin)
    a = nengo.Ensemble(n_neurons=100, dimensions=1)
    b = nengo.Ensemble(n_neurons=100, dimensions=1)
    nengo.Connection(stim, a)
    nengo.Connection(a, b, function=lambda x: x**2, synapse=0.01)

    probe_a = nengo.Probe(a, synapse=0.01)
    probe_b = nengo.Probe(b, synapse=0.01)

import nengo_distilled
# build the model
sim = nengo_distilled.Simulator(model)
# run the model
sim.run(10)

# plot the results
import matplotlib.pyplot as plt
plt.plot(sim.trange(), sim.data[probe_a])
plt.plot(sim.trange(), sim.data[probe_b])
plt.show()

Installation

The easiest way to install is to use pip.

pip install nengo-distilled

If that doesn't work, then try installing nengo manually, using the instructions at nengo/nengo. Then, try pip install nengo-distilled again. If that doesn't work, try a develop installation.

Developer installation

If you want to make changes to nengo_distilled, then do the following.

git clone https://github.com/nengo/nengo-distilled/
cd nengo-distilled
python setup.py develop --user

If you’re using a virtualenv (recommended!) then you can omit the --user flag.