spark.nn.interfaces.input.topological#

Classes#

TopologicalSpikerConfig

Base TopologicalSpiker configuration class.

TopologicalPoissonSpikerConfig

TopologicalPoissonSpiker configuration class.

TopologicalPoissonSpiker

Transforms a continuous signal to a spiking signal.

TopologicalLinearSpikerConfig

TopologicalLinearSpiker configuration class.

TopologicalLinearSpiker

Transforms a continuous signal to a spiking signal.

Module Contents#

class spark.nn.interfaces.input.topological.TopologicalSpikerConfig(__skip_validation__=False, **kwargs)[source]#

Bases: spark.nn.interfaces.input.base.InputInterfaceConfig

Base TopologicalSpiker configuration class.

Parameters:

__skip_validation__ (bool)

glue: jax.Array[source]#
mins: jax.Array[source]#
maxs: jax.Array[source]#
resolution: int[source]#
sigma: float[source]#
class spark.nn.interfaces.input.topological.TopologicalPoissonSpikerConfig(__skip_validation__=False, **kwargs)[source]#

Bases: TopologicalSpikerConfig, spark.nn.interfaces.input.poisson.PoissonSpikerConfig

TopologicalPoissonSpiker configuration class.

Parameters:

__skip_validation__ (bool)

class spark.nn.interfaces.input.topological.TopologicalPoissonSpiker(config=None, **kwargs)[source]#

Bases: spark.nn.interfaces.input.base.InputInterface

Transforms a continuous signal to a spiking signal. This transformation maps a vector (a point in a hypercube) into a simple manifold with/without its borders glued. This transformation assumes a very simple poisson neuron model without any type of adaptation or plasticity.

Init:

glue: jax.Array mins: jax.Array maxs: jax.Array resolution: int max_freq: float [Hz] sigma: float

Input:

signal: FloatArray

Output:

spikes: SpikeArray

Parameters:

config (TopologicalPoissonSpikerConfig | None)

config: TopologicalPoissonSpikerConfig[source]#
resolution[source]#
max_freq[source]#
sigma[source]#
build(input_specs)[source]#

Build method.

Parameters:

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

Return type:

None

__call__(signal)[source]#

Input interface operation.

Input: A FloatArray of values in the range [mins, maxs]. Output: A SpikeArray of the same shape as the input.

Parameters:

signal (spark.core.payloads.FloatArray)

Return type:

spark.nn.interfaces.input.base.InputInterfaceOutput

class spark.nn.interfaces.input.topological.TopologicalLinearSpikerConfig(__skip_validation__=False, **kwargs)[source]#

Bases: TopologicalSpikerConfig, spark.nn.interfaces.input.linear.LinearSpikerConfig

TopologicalLinearSpiker configuration class.

Parameters:

__skip_validation__ (bool)

class spark.nn.interfaces.input.topological.TopologicalLinearSpiker(config=None, **kwargs)[source]#

Bases: spark.nn.interfaces.input.base.InputInterface

Transforms a continuous signal to a spiking signal. This transformation maps a vector (a point in a hypercube) into a simple manifold with/without its borders glued. This transformation assumes a very simple linear neuron model without any type of adaptation or plasticity.

Init:

glue: jax.Array mins: jax.Array maxs: jax.Array resolution: int tau: float [ms] cd: float [ms] max_freq: float [Hz] sigma: float

Input:

signal: FloatArray

Output:

spikes: SpikeArray

Parameters:

config (TopologicalLinearSpikerConfig | None)

config: TopologicalLinearSpikerConfig[source]#
resolution[source]#
tau[source]#
cd[source]#
max_freq[source]#
sigma[source]#
build(input_specs)[source]#

Build method.

Parameters:

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

Return type:

None

reset()[source]#

Reset module to its default state.

__call__(signal)[source]#

Input interface operation.

Input: A FloatArray of values in the range [mins, maxs]. Output: A SpikeArray of the same shape as the input.

Parameters:

signal (spark.core.payloads.FloatArray)

Return type:

spark.nn.interfaces.input.base.InputInterfaceOutput