spark.nn.components.delays#

Submodules#

Classes#

Delays

Abstract synaptic delay model.

DelaysOutput

Generic delay model output spec.

NDelays

Data structure for spike storage and retrival for efficient neuron spike delay implementation.

NDelaysConfig

NDelays configuration class.

N2NDelays

Data structure for spike storage and retrival for efficient neuron to neuron spike delay implementation.

N2NDelaysConfig

N2NDelays configuration class.

Package Contents#

class spark.nn.components.delays.Delays(config=None, **kwargs)[source]#

Bases: spark.nn.components.base.Component, Generic[ConfigT]

Abstract synaptic delay model.

Parameters:

config (ConfigT | None)

abstractmethod reset()[source]#

Resets component state.

Return type:

None

abstractmethod __call__(in_spikes)[source]#

Execution method.

Parameters:

in_spikes (spark.core.payloads.SpikeArray)

Return type:

DelaysOutput

class spark.nn.components.delays.DelaysOutput[source]#

Bases: TypedDict

Generic delay model output spec.

Initialize self. See help(type(self)) for accurate signature.

out_spikes: spark.core.payloads.SpikeArray[source]#
class spark.nn.components.delays.NDelays(config=None, **kwargs)[source]#

Bases: spark.nn.components.delays.base.Delays

Data structure for spike storage and retrival for efficient neuron spike delay implementation. This synaptic delay model implements a generic conduction delay of the outputs spikes of neruons. Example: Neuron A fires, every neuron that listens to A recieves its spikes K timesteps later,

neuron B fires, every neuron that listens to B recieves its spikes L timesteps later.

Init:

max_delay: float delay_initializer: DelayInitializerConfig

Input:

in_spikes: SpikeArray

Output:

out_spikes: SpikeArray

Parameters:

config (NDelaysConfig)

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

Build method.

Parameters:

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

reset()[source]#

Resets component state.

Return type:

None

get_dense()[source]#

Convert bitmask to dense vector (aligned with MSB-first packing).

Return type:

jax.Array

__call__(in_spikes)[source]#

Execution method.

Parameters:

in_spikes (spark.core.payloads.SpikeArray)

Return type:

spark.nn.components.delays.base.DelaysOutput

class spark.nn.components.delays.NDelaysConfig(__skip_validation__=False, **kwargs)[source]#

Bases: spark.nn.components.delays.base.DelaysConfig

NDelays configuration class.

Parameters:

__skip_validation__ (bool)

max_delay: float[source]#
delays: jax.Array | spark.nn.initializers.base.Initializer[source]#
class spark.nn.components.delays.N2NDelays(config=None, **kwargs)[source]#

Bases: spark.nn.components.delays.base.Delays

Data structure for spike storage and retrival for efficient neuron to neuron spike delay implementation. This synaptic delay model implements specific conduction delays between specific neruons. Example: Neuron A fires and neuron B, C, and D listens to A; neuron B recieves A’s spikes I timesteps later,

neuron C recieves A’s spikes J timesteps later and neuron D recieves A’s spikes K timesteps later.

Init:

units: tuple[int, …] max_delay: float delays: jnp.ndarray | Initializer

Input:

in_spikes: SpikeArray

Output:

out_spikes: SpikeArray

Parameters:

config (N2NDelaysConfig)

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

Build method.

Parameters:

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

reset()[source]#

Resets component state.

Return type:

None

get_dense()[source]#

Convert bitmask to dense vector (aligned with MSB-first packing).

Return type:

jax.Array

__call__(in_spikes)[source]#

Execution method.

Parameters:

in_spikes (spark.core.payloads.SpikeArray)

Return type:

spark.nn.components.delays.base.DelaysOutput

class spark.nn.components.delays.N2NDelaysConfig(__skip_validation__=False, **kwargs)[source]#

Bases: spark.nn.components.delays.n_delays.NDelaysConfig

N2NDelays configuration class.

Parameters:

__skip_validation__ (bool)

units: tuple[int, Ellipsis][source]#