Neuron Types#
Submodules#
conex.behaviors.neurons.neuron_types.lif_neurons module#
Leaky Integrate-and-Fire variants.
the dynamics can be represented by: tau*dv/dt = F(u) + RI(u).
- class conex.behaviors.neurons.neuron_types.lif_neurons.LIF(R, threshold, tau, v_reset, v_rest, *args, init_v=None, init_s=None, **kwargs)[source]#
Bases:
BehaviorThe neural dynamics of LIF is defined by:
F(u) = v_rest - v, RI(u) = R*I.
We assume that the input to the neuron is current-based.
- Note: at least one Input mechanism should be added to the behaviors of the population.
and Fire method should be called by other behaviors.
- Parameters:
tau (float) – time constant of voltage decay.
R (float) – the resistance of the membrane potential.
threshold (float) – the threshold of neurons to initiate spike.
v_reset (float) – immediate membrane potential after a spike.
v_rest (float) – neuron membrane potential in absent of input.
- initialize(neurons)[source]#
Set neuron attributes. and adds Fire function as attribute to population.
- Parameters:
neurons (NeuronGroup) – the neural population.
- Fire(neurons)[source]#
Basic firing behavior of spiking neurons:
if v >= threshold then v = v_reset.
- forward(neurons)[source]#
Single step of dynamics.
- Parameters:
neurons (NeuronGroup) – the neural population.
- training: bool#
- class conex.behaviors.neurons.neuron_types.lif_neurons.ELIF(R, threshold, tau, v_reset, v_rest, delta, theta_rh, *args, init_v=None, init_s=None, **kwargs)[source]#
Bases:
LIFThe neural dynamics of Exponential LIF is defined by:
F(u) = v_rest - v + delta * exp((v - theta_rh) / delta), RI(u) = R*I,
We assume that the input to the neuron is current-based.
Note: at least one Input mechanism and one Firing mechanism should be added to the behaviors of the population
- Parameters:
tau (float) – time constant of voltage decay.
R (float) – the resistance of the membrane potential.
threshold (float) – the threshold of neurons to initiate spike.
v_reset (float) – immediate membrane potential after a spike.
v_rest (float) – neuron membrane potential in absent of input.
delta (float) – the constant defining the sharpness of exponential curve.
theta_rh (float) – The boosting threshold. (rheobase)
- initialize(neurons)[source]#
Set neuron attributes.
- Parameters:
neurons (NeuronGroup) – the neural population.
- training: bool#
- class conex.behaviors.neurons.neuron_types.lif_neurons.AELIF(R, threshold, tau, v_reset, v_rest, delta, theta_rh, alpha, beta, w_tau, *args, init_v=None, init_s=None, omega=None, **kwargs)[source]#
Bases:
ELIFThe neural dynamics of Adaptive Exponential LIF is defined by:
tau_a*d(omega)/dt = alpha*(v - v_rest) - omega + beta*tau_a*spikes, F(u) = v_rest - v + delta * exp((v - theta_rh) / delta), RI(u) = R*I - R*omega,
We assume that the input to the neuron is current-based.
Note: at least one Input mechanism and one Firing mechanism should be added to the behaviors of the population
- Parameters:
tau (float) – time constant of voltage decay.
R (float) – the resistance of the membrane potential.
threshold (float) – the threshold of neurons to initiate spike.
v_reset (float) – immediate membrane potential after a spike.
v_rest (float) – neuron membrane potential in absent of input.
delta (float) – the constant defining the sharpness of exponential curve.
theta_rh (float) – The boosting threshold.
alpha (float) – subthreshold adaptation parameter.
beta (float) – spike-triggered adaptation parameter.
w_tau (float) – time constant of adaptation decay.
- initialize(neurons)[source]#
Set neuron attributes.
- Parameters:
neurons (NeuronGroup) – the neural population.
- domega_dt(neurons)[source]#
Single step adaptation dynamics of AELIF neurons.
- Parameters:
neurons (NeuronGroup) – the neural population.
- Fire(neurons)[source]#
Basic firing behavior of spiking neurons:
if v >= threshold then v = v_reset.
and it do the adaptation.
- training: bool#