spark.nn.components.learning_rules.quadruplet_rule#

Classes#

QuadrupletRuleConfig

QuadrupletRule configuration class.

QuadrupletRule

Quadruplet plasticy rule model.

QuadrupletRuleTensorConfig

QuadrupletRuleTensor configuration class.

QuadrupletRuleTensor

Quadruplet plasticy rule model (tensor).

Module Contents#

class spark.nn.components.learning_rules.quadruplet_rule.QuadrupletRuleConfig(__skip_validation__=False, **kwargs)[source]#

Bases: spark.nn.components.learning_rules.base.LearningRuleConfig

QuadrupletRule configuration class.

Parameters:

__skip_validation__ (bool)

pre_tau: float | jax.Array[source]#
post_tau: float | jax.Array[source]#
q_alpha: float | jax.Array[source]#
q_beta: float | jax.Array[source]#
q_gamma: float | jax.Array[source]#
q_delta: float | jax.Array[source]#
gamma: float | jax.Array[source]#
class spark.nn.components.learning_rules.quadruplet_rule.QuadrupletRule(config=None, **kwargs)[source]#

Bases: spark.nn.components.learning_rules.base.LearningRule

Quadruplet plasticy rule model.

Init:

pre_tau: float | jax.Array post_tau: float | jax.Array q_alpha: float | jax.Array q_beta: float | jax.Array q_gamma: float | jax.Array q_delta: float | jax.Array eta: float | jax.Array

Input:

modulation: FloatArray pre_spikes: SpikeArray post_spikes: SpikeArray kernel: FloatArray

Output:

kernel: FloatArray

Parameters:

config (QuadrupletRuleConfig | None)

config: QuadrupletRuleConfig[source]#
build(input_specs)[source]#

Build method.

Parameters:

input_specs (dict[str, spark.core.specs.PortSpecs])

reset()[source]#

Resets component state.

Return type:

None

__call__(modulation, pre_spikes, post_spikes, kernel)[source]#

Computes and returns the next kernel update.

Parameters:
Return type:

spark.nn.components.learning_rules.base.LearningRuleOutput

class spark.nn.components.learning_rules.quadruplet_rule.QuadrupletRuleTensorConfig(__skip_validation__=False, **kwargs)[source]#

Bases: spark.nn.components.learning_rules.base.LearningRuleConfig

QuadrupletRuleTensor configuration class.

Parameters:

__skip_validation__ (bool)

pre_tau: tuple[float, float, float, float][source]#
post_tau: tuple[float, float, float, float][source]#
q_alpha: tuple[float, float, float, float][source]#
q_beta: tuple[float, float, float, float][source]#
q_gamma: tuple[float, float, float, float][source]#
q_delta: tuple[float, float, float, float][source]#
max_clip: tuple[float, float, float, float][source]#
eta: float[source]#
class spark.nn.components.learning_rules.quadruplet_rule.QuadrupletRuleTensor(config=None, **kwargs)[source]#

Bases: spark.nn.components.learning_rules.base.LearningRule

Quadruplet plasticy rule model (tensor).

Init:

pre_tau: float | jax.Array post_tau: float | jax.Array eta: float | jax.Array

Input:

modulation: FloatArray pre_spikes: SpikeArray post_spikes: SpikeArray kernel: FloatArray

Output:

kernel: FloatArray

Parameters:

config (QuadrupletRuleTensorConfig | None)

config: QuadrupletRuleTensorConfig[source]#
build(input_specs)[source]#

Build method.

Parameters:

input_specs (dict[str, spark.core.specs.PortSpecs])

reset()[source]#

Resets component state.

Return type:

None

__call__(modulation, pre_spikes, post_spikes, kernel)[source]#

Computes and returns the next kernel update.

Parameters:
Return type:

spark.nn.components.learning_rules.base.LearningRuleOutput