brainpy.dyn.neurons.GIF
brainpy.dyn.neurons.GIF#
- class brainpy.dyn.neurons.GIF(size, V_rest=- 70.0, V_reset=- 70.0, V_th_inf=- 50.0, V_th_reset=- 60.0, R=20.0, tau=20.0, a=0.0, b=0.01, k1=0.2, k2=0.02, R1=0.0, R2=1.0, A1=0.0, A2=0.0, V_initializer=OneInit(value=- 70.0), I1_initializer=ZeroInit, I2_initializer=ZeroInit, Vth_initializer=OneInit(value=- 50.0), method='exp_auto', keep_size=False, name=None)[source]#
Generalized Integrate-and-Fire model.
Model Descriptions
The generalized integrate-and-fire model 1 is given by
\[ \begin{align}\begin{aligned}&\frac{d I_j}{d t} = - k_j I_j\\&\frac{d V}{d t} = ( - (V - V_{rest}) + R\sum_{j}I_j + RI) / \tau\\&\frac{d V_{th}}{d t} = a(V - V_{rest}) - b(V_{th} - V_{th\infty})\end{aligned}\end{align} \]When \(V\) meet \(V_{th}\), Generalized IF neuron fires:
\[ \begin{align}\begin{aligned}&I_j \leftarrow R_j I_j + A_j\\&V \leftarrow V_{reset}\\&V_{th} \leftarrow max(V_{th_{reset}}, V_{th})\end{aligned}\end{align} \]Note that \(I_j\) refers to arbitrary number of internal currents.
Model Examples
Model Parameters
Parameter
Init Value
Unit
Explanation
V_rest
-70
mV
Resting potential.
V_reset
-70
mV
Reset potential after spike.
V_th_inf
-50
mV
Target value of threshold potential \(V_{th}\) updating.
V_th_reset
-60
mV
Free parameter, should be larger than \(V_{reset}\).
R
20
Membrane resistance.
tau
20
ms
Membrane time constant. Compute by \(R * C\).
a
0
Coefficient describes the dependence of \(V_{th}\) on membrane potential.
b
0.01
Coefficient describes \(V_{th}\) update.
k1
0.2
Constant pf \(I1\).
k2
0.02
Constant of \(I2\).
R1
0
Free parameter. Describes dependence of \(I_1\) reset value on \(I_1\) value before spiking.
R2
1
Free parameter. Describes dependence of \(I_2\) reset value on \(I_2\) value before spiking.
A1
0
Free parameter.
A2
0
Free parameter.
Model Variables
Variables name
Initial Value
Explanation
V
-70
Membrane potential.
input
0
External and synaptic input current.
spike
False
Flag to mark whether the neuron is spiking.
V_th
-50
Spiking threshold potential.
I1
0
Internal current 1.
I2
0
Internal current 2.
t_last_spike
-1e7
Last spike time stamp.
References
- 1
Mihalaş, Ştefan, and Ernst Niebur. “A generalized linear integrate-and-fire neural model produces diverse spiking behaviors.” Neural computation 21.3 (2009): 704-718.
- 2
Teeter, Corinne, Ramakrishnan Iyer, Vilas Menon, Nathan Gouwens, David Feng, Jim Berg, Aaron Szafer et al. “Generalized leaky integrate-and-fire models classify multiple neuron types.” Nature communications 9, no. 1 (2018): 1-15.
- __init__(size, V_rest=- 70.0, V_reset=- 70.0, V_th_inf=- 50.0, V_th_reset=- 60.0, R=20.0, tau=20.0, a=0.0, b=0.01, k1=0.2, k2=0.02, R1=0.0, R2=1.0, A1=0.0, A2=0.0, V_initializer=OneInit(value=- 70.0), I1_initializer=ZeroInit, I2_initializer=ZeroInit, Vth_initializer=OneInit(value=- 50.0), method='exp_auto', keep_size=False, name=None)[source]#
Methods
__init__
(size[, V_rest, V_reset, V_th_inf, ...])dI1
(I1, t)dI2
(I2, t)dV
(V, t, I1, I2, I_ext)dVth
(V_th, 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