class brainpy.dyn.STP(size, keep_size=False, sharding=None, method='exp_auto', name=None, mode=None, U=0.15, tau_f=1500.0, tau_d=200.0)[source]#

Synaptic output with short-term plasticity.

This model filters the synaptic currents according to two variables: \(u\) and \(x\).

\[I_{syn}^+(t) = I_{syn}^-(t) * x * u\]

where \(I_{syn}^-(t)\) and \(I_{syn}^+(t)\) are the synaptic currents before and after STP filtering, \(x\) denotes the fraction of resources that remain available after neurotransmitter depletion, and \(u\) represents the fraction of available resources ready for use (release probability).

The dynamics of \(u\) and \(x\) are governed by

\[\begin{split} \begin{aligned} \frac{du}{dt} & = & -\frac{u}{\tau_f}+U(1-u^-)\delta(t-t_{sp}), \\ \frac{dx}{dt} & = & \frac{1-x}{\tau_d}-u^+x^-\delta(t-t_{sp}), \\ \tag{1}\end{aligned}\end{split}\]

where \(t_{sp}\) denotes the spike time and \(U\) is the increment of \(u\) produced by a spike. \(u^-, x^-\) are the corresponding variables just before the arrival of the spike, and \(u^+\) refers to the moment just after the spike.

reset_state(batch_or_mode=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.

See for details.


The function to specify the updating rule.