[nengo-user] change current injection on Izhikevich neuron model

Trevor Bekolay tbekolay at gmail.com
Wed Feb 24 16:37:06 EST 2016


Hi Francesco,

The source of the confusion here is that, by default, we aren't dealing
with low-level quantities like currents and voltage. Instead, Nengo builds
network using the principles of the Neural Engineering Framework (NEF). A
brief summary of the principles of the NEF can be found in this notebook:
http://pythonhosted.org/nengo/examples/nef_summary.html

In your specific example, the current that you're injecting into the neuron
in the ensemble `e` is computed as the input signal (the value represented
in `u`) multiplied by the gain of the neuron, plus the bias. Since you have
not specified the gain and bias (or the max_rates and intercepts), the gain
and bias will be essentially random.

If you want to inject current directly, you can connect to `e.neurons`
instead of `e`. This bypasses the gain and bias. Alternatively, you can set
the gain and bias so that the amount of current injected is predictable.
I've shown both of these options in an example notebook:

https://gist.github.com/tbekolay/f871692fc29c9eaed776

Note also that when you probe an ensemble, by default you get the decoded
value, not the spiking activity of the ensemble. To get the spiking
activity, you must probe `e.neurons`. I've provided an example of that in
the notebook as well.

Hope this helps! Let us know if you have more questions!

- Trevor

On Tue, Feb 16, 2016 at 3:26 AM, Francesco Gallo Afflitto <
acermatch at hotmail.it> wrote:

> Hi, i’m a student of university of Catania (Italy) and i’m using nengo 2.0
>
> Following tutorials, i built the model of Izhikevich, but i don’t
> undestand how to change the input J (the current injection) in the model.
>
> -          What is the reason for which we put as input a constant value
> of zero (nengo.Node(0)) ?
>
> I would change my input and insert for example a step like this (u =
> nengo.Node(piecewise({0:0.1,2:10}))). But if i make this change, the output
> is not a spiking neuron. Why? Because seem to not work well if the input is
> Greater than 0.3. What i’ve to change?
>
> -          There is a way to change the initial condition of equation
> model?
>
>
>
> The code i used is this:
>
>
>
> import nengo
>
> from nengo.utils.functions import piecewise
>
>
>
> model = nengo.Network()
>
>
>
> with model:
>
>     u = nengo.Node(0)
>
>
>
>
>
>     e = nengo.Ensemble(n_neurons=1, dimensions=1,
>
>                        neuron_type=nengo.Izhikevich(
>
>                            tau_recovery=0.02,
>
>                            coupling=0.2,
>
>                            reset_voltage=-55,
>
>                            reset_recovery=4))
>
>
>
>     nengo.Connection(u, e)
>
>
>
> thanks a lot!
>
> _______________________________________________
> nengo-user mailing list
> nengo-user at ctnsrv.uwaterloo.ca
> http://ctnsrv.uwaterloo.ca/mailman/listinfo/nengo-user
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://artsservices.uwaterloo.ca/pipermail/nengo-user/attachments/20160224/d82067b7/attachment-0002.html>


More information about the nengo-user mailing list