lin_rate_ipn#
- class brainpy.state.lin_rate_ipn(in_size, tau=Quantity(10., 'ms'), lambda_=1.0, sigma=1.0, mu=0.0, g=1.0, mult_coupling=False, g_ex=1.0, g_in=1.0, theta_ex=0.0, theta_in=0.0, linear_summation=True, rectify_rate=0.0, rectify_output=False, rate_initializer=Constant(value=0.0), noise_initializer=Constant(value=0.0), name=None)#
NEST-compatible
lin_rate_ipnlinear rate neuron with input noise.Description
lin_rate_ipnimplements NEST’s linear rate neuron with input noise:\[\tau\, dX(t) = \left[-\lambda X(t) + \mu + \phi(\cdot)\right] dt + \left[\sqrt{\tau}\,\sigma\right] dW(t),\]where \(\phi(h)=g\,h\).
The model supports:
additive mean drive
mu(plus optional runtime inputx),Gaussian input noise (
sigma),optional multiplicative coupling,
linear/nonlinear summation mode (
linear_summation),optional output rectification (
rectify_output).
Update ordering (matching NEST ``rate_neuron_ipn``)
For each simulation step:
Compute noise sample
noise = sigma * xi.Propagate intrinsic dynamics with stochastic exponential Euler (or Euler-Maruyama when
lambda=0).Read delayed and instantaneous rate-event buffers.
Apply linear input nonlinearity and optional multiplicative coupling.
Apply output rectification (if enabled).
Store outputs analogous to NEST events:
delayed_rate(pre-update rate),instant_rate(post-update rate).
- Parameters:
in_size (
Size) – Population shape.tau (
Quantity[ms], optional) – Time constant of rate dynamics. Default10 ms.lambda_ (
float, optional) – Passive decay rate \(\lambda\). Default1.0.sigma (
float, optional) – Input noise scale. Default1.0.mu (
float, optional) – Mean drive. Default0.0.g (
float, optional) – Input gain \(g\). Default1.0.mult_coupling (
bool, optional) – Enable multiplicative coupling. DefaultFalse.g_ex (
float, optional) – Parameters of multiplicative coupling factorsg_ex * (theta_ex - rate)andg_in * (theta_in + rate).g_in (
float, optional) – Parameters of multiplicative coupling factorsg_ex * (theta_ex - rate)andg_in * (theta_in + rate).theta_ex (
float, optional) – Parameters of multiplicative coupling factorsg_ex * (theta_ex - rate)andg_in * (theta_in + rate).theta_in (
float, optional) – Parameters of multiplicative coupling factorsg_ex * (theta_ex - rate)andg_in * (theta_in + rate).linear_summation (
bool, optional) – IfTrueapply input nonlinearity to summed input; ifFalseto each input branch before coupling. For linear nonlinearity both are mathematically equivalent.rectify_rate (
float, optional) – Lower bound used whenrectify_output=True. Default0.0.rectify_output (
bool, optional) – IfTrueclamp output rate to>= rectify_rate.rate_initializer (
Callable, optional) – Initializer forrate. DefaultConstant(0.0).noise_initializer (
Callable, optional) – Initializer fornoise. DefaultConstant(0.0).name (
str, optional) – Module name.
Notes
Runtime events:
instant_rate_eventsare applied in the current step.delayed_rate_eventsare scheduled by integerdelay_steps: value1means next step,2means two steps later, etc.Event format can be dict or tuple:
(rate, weight),(rate, weight, delay_steps),(rate, weight, delay_steps, multiplicity).