Starting out
What should I do first?
Why is Nengo different from other neural simulators?
The main difference is in how the connection strengths between neurons are specified. For other neural simulators, you either set these weights manually or you set them randomly and specify a learning rule. Nengo allows you to specify the overall function that should be computed, and then it will solve for the connection weights that will best approximate that function. This allows the model designer to work at a higher level of abstraction (vectors and functions) and yet still produce a detailed model using realistic spiking neurons. You can use the other methods to specify and/or adapt weights as well.
Does Nengo support traditional neural modelling?
Yes. Nengo can use any sort of neuron model, including the common non-spiking rate neuron models. Indeed, you can even change from spiking neurons to rate neurons in the middle of a simulation, or have
a mixture of spiking and rate neurons in your model. Nengo also supports
various learning rules. You can also manually specify connection weights, if desired.
Model building
How do I get spiking neurons to perform function X?
Many example functions can be found in the "demo" directory of a standard Nengo install. They are explained in the
documentation, and many are explained in the
videos. You can also look through the
Nengo Model Archive to find examples.
Can I do learning in Nengo?
Yes. See the various scripts in the
demos and
videos section of this website with 'learning' in the title. Several papers in the CNRG Publications section also discuss learning in some detail. Such as
this one, and
this one.
How do I use regular connection weight matrices that I can change by hand?
You can define any connection weights you like using the built-in scripting language. Instructions and examples can be found
here.
Nengo workspace GUI
How do I fix my network view if it gets zoomed out too far?
Right-click the background and select 'zoom to fit'.
How do I fix problems dragging/zooming on my Mac?
You should be able to eliminate the problems by unchecking the scroll button for one-finger in the OS X Mouse Preferences.
Interactive Plots
How do I learn how to use these plots?
How can I define input easily in interactive plots?
If you right click on any input slider, you can select the option to load a .csv file. The first column is the time, and the remaining columns define the values of the various input dimensions at those times. This can be saved/edited as an excel file.
How can I save the output I see in interactive plots?
You can save all of the generated data by opening the settings (at the bottom), and clicking the page-like icon. The screen that is shown displays all of the decoded values by default. Right-clicking allows you to choose other data to display. The data is saved to a .csv file by clicking on the disk icon on this screen.
Can I get a .pdf of the network I'm running?
Yes. In the settings menu at the bottom of the page, press the .pdf logo and a save file box will appear. This is a vectorized version of the current display.
Python Scripting
How do I import a Python or Java library?
A: Two options. You can do it this way:
import ca.nengo.utils
but then when you use the library, you will have to provide its full name:
y=ca.nengo.utils.DataUtils.filter(x,0.005)
The other option is to import this way:
from ca.nengo.utils import *
This allows you to just do:
y=DataUtils.filter(x,0.005)
How do can I specify a particular set of encoding vectors?
How do I run a Nengo Python script from the command line?
Nengo has a command-line version called
nengo-cl. You can run a script by specifying it on the command line, such as
nengo-cl myscript.py. On Linux and OS X, you may have to specify the directory the script is in, which is often done by writing
./nengo-cl myscript.py.
Matlab plots
Can I get rid of all that whitespace around a plot?
A: You can! For a detailed explanation, see this blog post, but all it takes is one line of code.
A plot with a ton of whitespace, specifically sized with the line
figure('Position',[0,100,700,350],'Resize','off');
The same data plotted with the following additional line right after the figure call above, will have little whitespace.
set(gca, 'Position', get(gca, 'OuterPosition') - ...
get(gca, 'TightInset') * [-3 0 3 0; 0 -3 0 4; 0 0 3 0; 0 0 0 3]);
Note that the matrix at the end of the above line can be tweaked to change the margin on each of the four sides.
Additional help
Where do I find more complete documation?
Is there a person I can ask a question about Nengo?
A: If you have a question not answered in the documentation, please join the user's mailing list, and ask it there.