Blocks Module
Process
Composable blocks processes in Lava.
- class lava.lib.dl.netx.blocks.process.AbstractBlock(**kwargs)
Bases:
AbstractProcess
Abstract block definition.
- Parameters:
shape (tuple or list) – shape of the block output in (x, y, z) or WHC format.
neuron_params (dict, optional) – dictionary of neuron parameters. Defaults to None.
input_message_bits (int, optional) – number of message bits in input spike. Defaults to 0 meaning unary spike.
- property block: str
- class lava.lib.dl.netx.blocks.process.ComplexDense(**kwargs)
Bases:
AbstractBlock
Dense Complex layer block.
- Parameters:
shape (tuple or list) – shape of the layer block in (x, y, z)/WHC format.
neuron_params (dict, optional) – dictionary of neuron parameters. Defaults to None.
weight_real (np.ndarray) – synaptic real weight.
weight_imag (np.ndarray) – synaptic imag weight.
has_graded_input (dict) – flag for graded spikes at input. Defaults to False.
num_weight_bits_real (int) – number of real weight bits. Defaults to 8.
num_weight_bits_imag (int) – number of imag weight bits. Defaults to 8.
weight_exponent_real (int) – real weight exponent value. Defaults to 0.
weight_exponent_imag (int) – imag weight exponent value. Defaults to 0.
sparse_synapse (bool) – connection is sparse
input_message_bits (int, optional) – number of message bits in input spike. Defaults to 0 meaning unary spike.
- export_hdf5(handle)
- Return type:
None
- class lava.lib.dl.netx.blocks.process.ComplexInput(**kwargs)
Bases:
AbstractBlock
Input layer block.
- Parameters:
shape (tuple or list) – shape of the layer block in (x, y, z)/WHC format.
neuron_params (dict, optional) – dictionary of neuron parameters. Defaults to None.
- export_hdf5(handle)
- Return type:
None
- class lava.lib.dl.netx.blocks.process.Conv(**kwargs)
Bases:
AbstractBlock
Conv layer block.
- Parameters:
shape (tuple or list) – shape of the layer block in (x, y, z)/WHC format.
input_shape (tuple or list) – shape of input layer in (x, y, z)/WHC format.
neuron_params (dict, optional) – dictionary of neuron parameters. Defaults to None.
weight (np.ndarray) – kernel weight.
bias (np.ndarray or None) – bias of neuron. None means no bias. Defaults to None.
stride (int or tuple of ints, optional) – convolution stride. Defaults to 1.
padding (int or tuple of ints, optional) – convolution padding. Defaults to 0.
dilation (int or tuple of ints, optional) – convolution dilation. Defaults to 1.
groups (int) – convolution groups. Defaults to 1.
input_message_bits (int, optional) – number of message bits in input spike. Defaults to 0 meaning unary spike.
- export_hdf5(handle)
- Return type:
None
- class lava.lib.dl.netx.blocks.process.Dense(**kwargs)
Bases:
AbstractBlock
Dense layer block. :param shape: shape of the layer block in (x, y, z)/WHC format. :type shape: tuple or list :param neuron_params: dictionary of neuron parameters. Defaults to None. :type neuron_params: dict, optional :param weight: synaptic weight. :type weight: np.ndarray :param delay: synaptic delay. :type delay: np.ndarray :param bias: bias of neuron. None means no bias. Defaults to None. :type bias: np.ndarray or None :param has_graded_input: flag for graded spikes at input. Defaults to False. :type has_graded_input: dict :param num_weight_bits: number of weight bits. Defaults to 8. :type num_weight_bits: int :param weight_exponent: weight exponent value. Defaults to 0. :type weight_exponent: int :param sparse_synapse: connection is sparse :type sparse_synapse: bool :param input_message_bits: number of message bits in input spike. Defaults to 0 meaning unary
spike.
- export_hdf5(handle)
- Return type:
None
- class lava.lib.dl.netx.blocks.process.Input(**kwargs)
Bases:
AbstractBlock
Input layer block.
- Parameters:
shape (tuple or list) – shape of the layer block in (x, y, z)/WHC format.
neuron_params (dict, optional) – dictionary of neuron parameters. Defaults to None.
transform (fx pointer or lambda) – input transform to be applied. Defualts to
lambda x: x
.bias (np.ndarray or None) – bias of input neuron. None means no bias. Defaults to None.
input_message_bits (int, optional) – number of message bits in input spike. Defaults to 0 meaning unary spike.
- export_hdf5(handle)
- Return type:
None
- class lava.lib.dl.netx.blocks.process.RecurrentDense(**kwargs)
Bases:
AbstractBlock
RecurrentDense layer block. :param shape: shape of the layer block in (x, y, z)/WHC format. :type shape: tuple or list :param neuron_params: dictionary of neuron parameters. Defaults to None. :type neuron_params: dict, optional :param weight: synaptic weight. :type weight: np.ndarray :param weight_rec: recurrent synaptic weight. :type weight_rec: np.ndarray :param delay: synaptic delay. :type delay: np.ndarray :param bias: bias of neuron. None means no bias. Defaults to None. :type bias: np.ndarray or None :param has_graded_input: flag for graded spikes at input. Defaults to False. :type has_graded_input: dict :param num_weight_bits: number of weight bits. Defaults to 8. :type num_weight_bits: int :param weight_exponent: weight exponent value. Defaults to 0. :type weight_exponent: int :param sparse_synapse: connection is sparse :type sparse_synapse: bool :param input_message_bits: number of message bits in input spike. Defaults to 0 meaning unary
spike.
Models
- class lava.lib.dl.netx.blocks.models.AbstractPyBlockModel(proc)
Bases:
AbstractSubProcessModel
Abstract Block model. A block typically encapsulates at least a synapse and a neuron in a layer. It could also include recurrent connection as well as residual connection. A minimal example of a block is a feedforward layer.
- required_resources: ty.List[ty.Type[AbstractResource]] = [<class 'lava.magma.core.resources.CPU'>]
- tags: ty.List[str] = ['fixed_pt']
- class lava.lib.dl.netx.blocks.models.PyComplexDenseModel(proc)
Bases:
AbstractPyBlockModel
- implements_process
alias of
ComplexDense
- implements_protocol
alias of
LoihiProtocol
- class lava.lib.dl.netx.blocks.models.PyComplexInputModel(proc)
Bases:
AbstractPyBlockModel
- implements_process
alias of
ComplexInput
- implements_protocol
alias of
LoihiProtocol
- class lava.lib.dl.netx.blocks.models.PyConvModel(proc)
Bases:
AbstractPyBlockModel
- implements_protocol
alias of
LoihiProtocol
- class lava.lib.dl.netx.blocks.models.PyDenseModel(proc)
Bases:
AbstractPyBlockModel
- implements_protocol
alias of
LoihiProtocol
- class lava.lib.dl.netx.blocks.models.PyInputModel(proc)
Bases:
AbstractPyBlockModel
- implements_protocol
alias of
LoihiProtocol