brainpy.dyn.neurons.AdQuaIF
brainpy.dyn.neurons.AdQuaIF#
- class brainpy.dyn.neurons.AdQuaIF(size, V_rest=- 65.0, V_reset=- 68.0, V_th=- 30.0, V_c=- 50.0, a=1.0, b=0.1, c=0.07, tau=10.0, tau_w=10.0, V_initializer=ZeroInit, w_initializer=ZeroInit, method='exp_auto', keep_size=False, name=None)[source]#
Adaptive quadratic integrate-and-fire neuron model.
Model Descriptions
The adaptive quadratic integrate-and-fire neuron model 1 is given by:
\[\begin{split}\begin{aligned} \tau_m \frac{d V}{d t}&=c(V-V_{rest})(V-V_c) - w + I(t), \\ \tau_w \frac{d w}{d t}&=a(V-V_{rest}) - w, \end{aligned}\end{split}\]once the membrane potential reaches the spike threshold,
\[\begin{split}V \rightarrow V_{reset}, \\ w \rightarrow w+b.\end{split}\]Model Examples
>>> import brainpy as bp >>> group = bp.dyn.AdQuaIF(1, ) >>> runner = bp.dyn.DSRunner(group, monitors=['V', 'w'], inputs=('input', 30.)) >>> runner.run(300) >>> fig, gs = bp.visualize.get_figure(2, 1, 3, 8) >>> fig.add_subplot(gs[0, 0]) >>> bp.visualize.line_plot(runner.mon.ts, runner.mon.V, ylabel='V') >>> fig.add_subplot(gs[1, 0]) >>> bp.visualize.line_plot(runner.mon.ts, runner.mon.w, ylabel='w', show=True)
(Source code, png, hires.png, pdf)
Model Parameters
Parameter
Init Value
Unit
Explanation
V_rest
-65
mV
Resting potential.
V_reset
-68
mV
Reset potential after spike.
V_th
-30
mV
Threshold potential of spike and reset.
V_c
-50
mV
Critical voltage for spike initiation. Must be larger than \(V_{rest}\).
a
1
The sensitivity of the recovery variable \(u\) to the sub-threshold fluctuations of the membrane potential \(v\)
b
.1
The increment of \(w\) produced by a spike.
c
.07
Coefficient describes membrane potential update. Larger than 0.
tau
10
ms
Membrane time constant.
tau_w
10
ms
Time constant of the adaptation current.
Model Variables
Variables name
Initial Value
Explanation
V
0
Membrane potential.
w
0
Adaptation current.
input
0
External and synaptic input current.
spike
False
Flag to mark whether the neuron is spiking.
t_last_spike
-1e7
Last spike time stamp.
References
- 1
Izhikevich, E. M. (2004). Which model to use for cortical spiking neurons?. IEEE transactions on neural networks, 15(5), 1063-1070.
- 2
Touboul, Jonathan. “Bifurcation analysis of a general class of nonlinear integrate-and-fire neurons.” SIAM Journal on Applied Mathematics 68, no. 4 (2008): 1045-1079.
- __init__(size, V_rest=- 65.0, V_reset=- 68.0, V_th=- 30.0, V_c=- 50.0, a=1.0, b=0.1, c=0.07, tau=10.0, tau_w=10.0, V_initializer=ZeroInit, w_initializer=ZeroInit, method='exp_auto', keep_size=False, name=None)[source]#
Methods
__init__
(size[, V_rest, V_reset, V_th, V_c, ...])dV
(V, t, w, I_ext)dw
(w, 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
derivative
global_delay_vars
name
steps