SI#
- class capymoa.ocl.strategy.SI[source]#
Bases:
BatchClassifier,Module,HandlerSynaptic Intelligence learner.
Synaptic Intelligence (SI) is a regularisation-based continual learning strategy that accumulates per-parameter importance online from optimization trajectories, then penalises changes to parameters that were important for previous tasks [1].
Alternative implementations:
- __init__(
- schema: Schema,
- model: Module,
- optimiser: Optimizer,
- lambda_: float,
- damping: float = 0.1,
- device: device | None = None,
- mask_test: bool = False,
- mask_train: bool = False,
- task_mask: Tensor | None = None,
Construct an SI learner.
- Parameters:
schema – Stream schema used by the classifier interface.
model – Torch model that outputs class logits.
optimiser – Optimiser used to update
modelparameters.lambda – Weight of the SI regularisation term.
damping – Damping factor added to the denominator when calculating importance weights.
device – Compute device.
mask_test – Whether to apply per-task masking during testing. This is a task incremental scenario.
mask_train – Whether to apply per-task masking during training. This is also known as the labels trick.
task_mask – Optional per-task mask applied to output logits.
- Raises:
ValueError – If task-specific masking is requested without
task_mask.
- attach_with(source: Dispatcher) SI[source]#
Attach this sink to an event source.
Implementations should call
capymoa.ocl.events.Dispatcher.subscribe()for each event type the sink needs to handle.- Parameters:
dispatcher – The source this sink should subscribe to.
- batch_predict_proba(x: Tensor) Tensor[source]#
Predict the probabilities of the classes for a batch of instances.
- classmethod from_params( ) Any[source]#
Construct an instance from parameters produced by
get_params.
- predict(instance: Instance) int | None[source]#
Predict the label of an instance.
The base implementation calls
predict_proba()and returns the label with the highest probability.- Parameters:
instance – The instance to predict the label for.
- Returns:
The predicted label or
Noneif the classifier is unable to make a prediction.
- predict_proba(
- instance: Instance,
Calls
batch_predict_proba()with a batch of size 1.
- train(instance: LabeledInstance) None[source]#
Calls
batch_train()with a batch of size 1.
- T_destination = ~T_destination#
- device: torch.device = device(type='cpu')#
Device on which the batch will be processed.
- random_seed: int#
The random seed for reproducibility.
When implementing a classifier ensure random number generators are seeded.
- x_dtype: torch.dtype = torch.float32#
Data type for the input features.
- y_dtype: torch.dtype = torch.int64#
Data type for the target value/labels.