devices.xylo.syns61201.Xylo2HiddenNeurons

class devices.xylo.syns61201.Xylo2HiddenNeurons(input_nodes: ~rockpool.graph.graph_base.SetList[GraphNode], output_nodes: ~rockpool.graph.graph_base.SetList[GraphNode], name: str, computational_module: ~typing.Any, hw_ids: int | ~numpy.ndarray | ~torch.Tensor | ~jax._src.numpy.lax_numpy.array | float = <factory>, threshold: int | ~numpy.ndarray | ~torch.Tensor | ~jax._src.numpy.lax_numpy.array | float = <factory>, bias: int | ~numpy.ndarray | ~torch.Tensor | ~jax._src.numpy.lax_numpy.array | float = <factory>, dash_mem: int | ~numpy.ndarray | ~torch.Tensor | ~jax._src.numpy.lax_numpy.array | float = <factory>, dash_syn: int | ~numpy.ndarray | ~torch.Tensor | ~jax._src.numpy.lax_numpy.array | float = <factory>, dt: float | None = None)[source]

Bases: Xylo2Neurons

A graph.GraphModule encapsulating Xylo v2 hidden neurons

Attributes overview

dt

The dt time step used for this neuron module

hw_ids

The HW neuron IDs allocated to this graph module (N,).

threshold

The threshold parameters for each neuron (N,)

bias

The bias parameters for each neuron (N,)

dash_mem

The membrane decay parameters for each neuron (N,)

dash_syn

The synapse decay parameters for each neuron.

input_nodes

The input nodes attached to this module

output_nodes

The output nodes attached to this module

name

An arbitrary name attached to this specific GraphModule

computational_module

The computational module that acts as the source for this graph module

Methods overview

__init__(input_nodes, output_nodes, name, ...)

add_input(node)

Add a GraphNode as an input source to this module, and connect it

add_output(node)

Add a GraphNode as an output of this module, and connect it

clear_inputs()

Remove all GraphNode s as inputs of this module

clear_outputs()

Remove all GraphNode s as outputs of this module

remove_input(node)

Remove a GraphNode as an input of this module, and disconnect it

remove_output(node)

Remove a GraphNode as an output of this module, and disconnect it

__init__(input_nodes: ~rockpool.graph.graph_base.SetList[GraphNode], output_nodes: ~rockpool.graph.graph_base.SetList[GraphNode], name: str, computational_module: ~typing.Any, hw_ids: int | ~numpy.ndarray | ~torch.Tensor | ~jax._src.numpy.lax_numpy.array | float = <factory>, threshold: int | ~numpy.ndarray | ~torch.Tensor | ~jax._src.numpy.lax_numpy.array | float = <factory>, bias: int | ~numpy.ndarray | ~torch.Tensor | ~jax._src.numpy.lax_numpy.array | float = <factory>, dash_mem: int | ~numpy.ndarray | ~torch.Tensor | ~jax._src.numpy.lax_numpy.array | float = <factory>, dash_syn: int | ~numpy.ndarray | ~torch.Tensor | ~jax._src.numpy.lax_numpy.array | float = <factory>, dt: float | None = None) None
classmethod _convert_from(mod: GraphModule) GraphModule

Convert another GraphModule to a GraphModule of this specific subclass

You should override this method in your subclass, to include conversion rules from other graph module classes to your specific subclass.

If you do not provide conversion rules to your specific subclass then it will not be possible to map other GraphModule subclasses to your subclass.

Parameters:

mod (GraphModule) – A GraphModule or GraphModule subclass object to convert to an object of the specific subclass.

Returns:

A converted GraphModule subclass object, of the specific subclass on which this method was called.

Return type:

GraphModule

classmethod _factory(size_in: int, size_out: int, name: str | None = None, computational_module: Any | None = None, *args, **kwargs) GraphModuleBase

Build a new GraphModule or GraphModule subclass, with new input and output GraphNode s created automatically

Use this factory method to construct a new GraphModule from scratch, which needs new input and output GraphNode s created automatically. This helper method will be inherited by new GraphModule subclasses, and will act as factory methods also for your custom GraphModule subclass.

Parameters:
  • size_in (int) – The number of input GraphNode s to create and attach

  • size_out (int) – The number of output GraphNode s to create and attach

  • name (str, optional) – An arbitrary name to attach to this GraphModule, defaults to None

  • computational_module (Optional[Module], optional) – A rockpool computational module that forms the “generator” of this graph module, defaults to None

Returns:

The newly constructed GraphModule or GraphModule subclass

Return type:

GraphModuleBase

add_input(node: GraphNode) None

Add a GraphNode as an input source to this module, and connect it

The new node will be appended after the last current input node. The node will be connected with this GraphModule as a sink.

Parameters:

node (GraphNode) – The node to add as an input source

add_output(node: GraphNode) None

Add a GraphNode as an output of this module, and connect it

The new node will be appended after the last current output node. The node will be connected with this GraphModule as a source.

Parameters:

node (GraphNode) – The node to add as an output

bias: IntVector | FloatVector

The bias parameters for each neuron (N,)

Type:

IntVector

clear_inputs() None

Remove all GraphNode s as inputs of this module

clear_outputs() None

Remove all GraphNode s as outputs of this module

computational_module: Module

The computational module that acts as the source for this graph module

Type:

Module

dash_mem: IntVector | FloatVector

The membrane decay parameters for each neuron (N,)

Type:

IntVector

dash_syn: IntVector | FloatVector

The synapse decay parameters for each neuron. Either (N,) if only one synapse is used per neuron, or (2N,) if two synapses are used for each neuron (i.e. syn2). In this case, elements dash_syn[0:1] refer to the synapses of neuron 0, and so on.

Type:

IntVector

dt: float | None = None

The dt time step used for this neuron module

Type:

float

hw_ids: IntVector | FloatVector

The HW neuron IDs allocated to this graph module (N,). Empty means than no HW IDs have been allocated.

Type:

IntVector

input_nodes: SetList['GraphNode']

The input nodes attached to this module

Type:

SetList[GraphNode]

name: str

An arbitrary name attached to this specific GraphModule

Type:

str

output_nodes: SetList['GraphNode']

The output nodes attached to this module

Type:

SetList[GraphNode]

remove_input(node: GraphNode) None

Remove a GraphNode as an input of this module, and disconnect it

The node will be disconnected from this GraphModule as a sink, and will be removed from the module.

Parameters:

node (GraphNode) – The node to remove. If this node exists as an input to the module, it will be removed.

remove_output(node: GraphNode) None

Remove a GraphNode as an output of this module, and disconnect it

The node will be disconnected from this GraphModule as a source, and will be removed from the module.

Parameters:

node (GraphNode) – The node to remove. If this node exists as an output to the module, it will be removed.

threshold: IntVector | FloatVector

The threshold parameters for each neuron (N,)

Type:

IntVector