brainpy.dyn.neurons.Izhikevich
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