Learning rules¶
Build Nengo learning rules into the TensorFlow graph.
-
class
nengo_dl.learning_rule_builders.
SimBCMBuilder
(ops, signals)[source]¶ Build a group of
SimBCM
operators.-
build_step
(signals)[source]¶ This function builds whatever computations need to be executed in each simulation timestep.
Parameters: - signals :
signals.SignalDict
Mapping from
Signal
totf.Tensor
(updated by operations)
Returns: - list of ``tf.Tensor``, optional
If not None, the returned tensors correspond to outputs with possible side-effects, i.e. computations that need to be executed in the TensorFlow graph even if their output doesn’t appear to be used
- signals :
-
-
class
nengo_dl.learning_rule_builders.
SimOjaBuilder
(ops, signals)[source]¶ Build a group of
SimOja
operators.-
build_step
(signals)[source]¶ This function builds whatever computations need to be executed in each simulation timestep.
Parameters: - signals :
signals.SignalDict
Mapping from
Signal
totf.Tensor
(updated by operations)
Returns: - list of ``tf.Tensor``, optional
If not None, the returned tensors correspond to outputs with possible side-effects, i.e. computations that need to be executed in the TensorFlow graph even if their output doesn’t appear to be used
- signals :
-
-
class
nengo_dl.learning_rule_builders.
SimVojaBuilder
(ops, signals)[source]¶ Build a group of
SimVoja
operators.-
build_step
(signals)[source]¶ This function builds whatever computations need to be executed in each simulation timestep.
Parameters: - signals :
signals.SignalDict
Mapping from
Signal
totf.Tensor
(updated by operations)
Returns: - list of ``tf.Tensor``, optional
If not None, the returned tensors correspond to outputs with possible side-effects, i.e. computations that need to be executed in the TensorFlow graph even if their output doesn’t appear to be used
- signals :
-
-
class
nengo_dl.learning_rule_builders.
SimPES
(pre_filtered, error, delta, learning_rate, tag=None)[source]¶ Calculate connection weight change according to the PES rule.
Implements the PES learning rule of the form
\[\Delta \omega_{ij} = \frac{\kappa}{n} e_j a_i\]where
- \(\kappa\) is a scalar learning rate,
- \(n\) is the number of presynaptic neurons
- \(e_j\) is the error for the jth output dimension, and
- \(a_i\) is the activity of a presynaptic neuron.
Parameters: - pre_filtered : Signal
The presynaptic activity, \(a_i\).
- error : Signal
The error signal, \(e_j\).
- delta : Signal
The synaptic weight change to be applied, \(\Delta \omega_{ij}\).
- learning_rate : float
The scalar learning rate, \(\kappa\).
- tag : str, optional (Default: None)
A label associated with the operator, for debugging purposes.
Notes
- sets
[delta]
- incs
[]
- reads
[pre_filtered, error]
- updates
[]
Attributes: - pre_filtered : Signal
The presynaptic activity, \(a_i\).
- error : Signal
The error signal, \(e_j\).
- delta : Signal
The synaptic weight change to be applied, \(\Delta \omega_{ij}\).
- learning_rate : float
The scalar learning rate, \(\kappa\).
- tag : str, optional (Default: None)
A label associated with the operator, for debugging purposes.
-
nengo_dl.learning_rule_builders.
build_pes
(model, pes, rule)[source]¶ Builds a .PES object into a model.
Parameters: - model : Model
The model to build into.
- pes : PES
Learning rule type to build.
- rule : LearningRule
The learning rule object corresponding to the neuron type.
Notes
Does not modify
model.params[]
and can therefore be called more than once with the same .PES instance.
-
class
nengo_dl.learning_rule_builders.
SimPESBuilder
(ops, signals)[source]¶ Build a group of
SimPES
operators.-
build_step
(signals)[source]¶ This function builds whatever computations need to be executed in each simulation timestep.
Parameters: - signals :
signals.SignalDict
Mapping from
Signal
totf.Tensor
(updated by operations)
Returns: - list of ``tf.Tensor``, optional
If not None, the returned tensors correspond to outputs with possible side-effects, i.e. computations that need to be executed in the TensorFlow graph even if their output doesn’t appear to be used
- signals :
-