# LifRefLTC#

class brainpy.dyn.LifRefLTC(size, sharding=None, keep_size=False, mode=None, spk_fun=InvSquareGrad(alpha=100.0), spk_dtype=None, detach_spk=False, spk_reset='soft', method='exp_auto', name=None, init_var=True, scaling=None, V_rest=0.0, V_reset=-5.0, V_th=20.0, R=1.0, tau=10.0, V_initializer=ZeroInit, tau_ref=0.0, ref_var=False)[source]#

Leaky integrate-and-fire neuron model with liquid time-constant which has refractory periods .

The formal equations of a LIF model  is given by:

$\begin{split}\tau \frac{dV}{dt} = - (V(t) - V_{rest}) + RI(t) \\ \text{after} \quad V(t) \gt V_{th}, V(t) = V_{reset} \quad \text{last} \quad \tau_{ref} \quad \text{ms}\end{split}$

where $$V$$ is the membrane potential, $$V_{rest}$$ is the resting membrane potential, $$V_{reset}$$ is the reset membrane potential, $$V_{th}$$ is the spike threshold, $$\tau$$ is the time constant, $$\tau_{ref}$$ is the refractory time period, and $$I$$ is the time-variant synaptic inputs.

Examples

There is an example usage:

import brainpy as bp

neu = bp.dyn.LifRefLTC(1, )

# example for section input
inputs = bp.inputs.section_input([0., 21., 0.], [100., 300., 100.])

runner = bp.DSRunner(neu, monitors=['V'])
runner.run(inputs=inputs)

bp.visualize.line_plot(runner.mon['ts'], runner.mon['V'], show=True)

Parameters:
reset_state(batch_size=None, **kwargs)[source]#

Reset function which resets local states in this model.

Simply speaking, this function should implement the logic of resetting of local variables in this node.

update(x=None)[source]#

The function to specify the updating rule.