brainpy.dyn.neurons.Izhikevich#

class brainpy.dyn.neurons.Izhikevich(size, a=0.02, b=0.2, c=- 65.0, d=8.0, V_th=30.0, tau_ref=0.0, V_initializer=ZeroInit, u_initializer=OneInit(value=1.0), method='exp_auto', keep_size=False, name=None)[source]#

The Izhikevich neuron model.

Model Descriptions

The dynamics of the Izhikevich neuron model 1 2 is given by:

\[ \begin{align}\begin{aligned}\frac{d V}{d t} &= 0.04 V^{2}+5 V+140-u+I\\\frac{d u}{d t} &=a(b V-u)\end{aligned}\end{align} \]
\[\begin{split}\text{if} v \geq 30 \text{mV}, \text{then} \begin{cases} v \leftarrow c \\ u \leftarrow u+d \end{cases}\end{split}\]

Model Examples

Model Parameters

Parameter

Init Value

Unit

Explanation

a

0.02

It determines the time scale of the recovery variable \(u\).

b

0.2

It describes the sensitivity of the recovery variable \(u\) to the sub-threshold fluctuations of the membrane potential \(v\).

c

-65

It describes the after-spike reset value of the membrane potential \(v\) caused by the fast high-threshold \(K^{+}\) conductance.

d

8

It describes after-spike reset of the recovery variable \(u\) caused by slow high-threshold \(Na^{+}\) and \(K^{+}\) conductance.

tau_ref

0

ms

Refractory period length. [ms]

V_th

30

mV

The membrane potential threshold.

Model Variables

Variables name

Initial Value

Explanation

V

-65

Membrane potential.

u

1

Recovery variable.

input

0

External and synaptic input current.

spike

False

Flag to mark whether the neuron is spiking.

refractory

False

Flag to mark whether the neuron is in refractory period.

t_last_spike

-1e7

Last spike time stamp.

References

1

Izhikevich, Eugene M. “Simple model of spiking neurons.” IEEE Transactions on neural networks 14.6 (2003): 1569-1572.

2

Izhikevich, Eugene M. “Which model to use for cortical spiking neurons?.” IEEE transactions on neural networks 15.5 (2004): 1063-1070.

__init__(size, a=0.02, b=0.2, c=- 65.0, d=8.0, V_th=30.0, tau_ref=0.0, V_initializer=ZeroInit, u_initializer=OneInit(value=1.0), method='exp_auto', keep_size=False, name=None)[source]#

Methods

__init__(size[, a, b, c, d, V_th, tau_ref, ...])

dV(V, t, u, I_ext)

du(u, t, V)

get_delay_data(name, delay_step, *indices)

Get delay data according to the provided delay steps.

ints([method])

Collect all integrators in this node and the children nodes.

load_states(filename[, verbose])

Load the model states.

nodes([method, level, include_self])

Collect all children nodes.

register_delay(name, delay_step, delay_target)

Register delay variable.

register_implicit_nodes(nodes)

register_implicit_vars(variables)

reset()

Reset function which reset the whole variables in the model.

reset_delay(name, delay_target)

Reset the delay variable.

save_states(filename[, variables])

Save the model states.

train_vars([method, level, include_self])

The shortcut for retrieving all trainable variables.

unique_name([name, type_])

Get the unique name for this object.

update(t, dt)

The function to specify the updating rule.

update_delay(name, delay_data)

Update the delay according to the delay data.

vars([method, level, include_self])

Collect all variables in this node and the children nodes.

Attributes

global_delay_vars

name

steps