Callbacks¶
Callbacks are essential to provide a uniform API for tasks like early stopping
etc.
The PyTorch learning rate schedulers are also implemented as callbacks.
Every callback should ber derived from AbstractCallback
and must
provide the methods at_epoch_begin
and at_epoch_end
.
AbstractCallback¶
-
class
AbstractCallback
(*args, **kwargs)[source]¶ Bases:
object
Implements abstract callback interface. All callbacks should be derived from this class
See also
AbstractNetworkTrainer
EarlyStopping¶
-
class
EarlyStopping
(monitor_key, min_delta=0, patience=0, mode='min')[source]¶ Bases:
delira.training.callbacks.abstract_callback.AbstractCallback
Implements Early Stopping as callback
See also
-
_is_better
(metric)[source]¶ Helper function to decide whether the current metric is better than the best metric so far
- Parameters
metric – current metric value
- Returns
whether this metric is the new best metric or not
- Return type
-
at_epoch_begin
(trainer, **kwargs)¶ Function which will be executed at begin of each epoch
- Parameters
trainer (
AbstractNetworkTrainer
) –**kwargs – additional keyword arguments
- Returns
modified trainer attributes, where the name must correspond to the trainer’s attribute name
- Return type
-
at_epoch_end
(trainer, **kwargs)[source]¶ Actual early stopping: Checks at end of each epoch if monitored metric is new best and if it hasn’t improved over self.patience epochs, the training will be stopped
- Parameters
trainer (
AbstractNetworkTrainer
) – the trainer whose arguments can be modified**kwargs – additional keyword arguments
- Returns
trainer with modified attributes
- Return type
AbstractNetworkTrainer
-
DefaultPyTorchSchedulerCallback¶
-
class
DefaultPyTorchSchedulerCallback
(*args, **kwargs)[source]¶ Bases:
delira.training.callbacks.abstract_callback.AbstractCallback
Implements a Callback, which at_epoch_end function is suitable for most schedulers
-
at_epoch_begin
(trainer, **kwargs)¶ Function which will be executed at begin of each epoch
- Parameters
trainer (
AbstractNetworkTrainer
) –**kwargs – additional keyword arguments
- Returns
modified trainer attributes, where the name must correspond to the trainer’s attribute name
- Return type
-
CosineAnnealingLRCallback¶
-
class
CosineAnnealingLRCallback
(optimizer, T_max, eta_min=0, last_epoch=-1)[source]¶ Bases:
delira.training.callbacks.pytorch_schedulers.DefaultPyTorchSchedulerCallback
Wraps PyTorch’s CosineAnnealingLR Scheduler as callback
-
at_epoch_begin
(trainer, **kwargs)¶ Function which will be executed at begin of each epoch
- Parameters
trainer (
AbstractNetworkTrainer
) –**kwargs – additional keyword arguments
- Returns
modified trainer attributes, where the name must correspond to the trainer’s attribute name
- Return type
-
at_epoch_end
(trainer, **kwargs)¶ Executes a single scheduling step
- Parameters
trainer (
PyTorchNetworkTrainer
) – the trainer class, which can be changed**kwargs – additional keyword arguments
- Returns
modified trainer
- Return type
PyTorchNetworkTrainer
-
ExponentialLRCallback¶
-
class
ExponentialLRCallback
(optimizer, gamma, last_epoch=-1)[source]¶ Bases:
delira.training.callbacks.pytorch_schedulers.DefaultPyTorchSchedulerCallback
Wraps PyTorch’s ExponentialLR Scheduler as callback
-
at_epoch_begin
(trainer, **kwargs)¶ Function which will be executed at begin of each epoch
- Parameters
trainer (
AbstractNetworkTrainer
) –**kwargs – additional keyword arguments
- Returns
modified trainer attributes, where the name must correspond to the trainer’s attribute name
- Return type
-
at_epoch_end
(trainer, **kwargs)¶ Executes a single scheduling step
- Parameters
trainer (
PyTorchNetworkTrainer
) – the trainer class, which can be changed**kwargs – additional keyword arguments
- Returns
modified trainer
- Return type
PyTorchNetworkTrainer
-
LambdaLRCallback¶
-
class
LambdaLRCallback
(optimizer, lr_lambda, last_epoch=-1)[source]¶ Bases:
delira.training.callbacks.pytorch_schedulers.DefaultPyTorchSchedulerCallback
Wraps PyTorch’s LambdaLR Scheduler as callback
-
at_epoch_begin
(trainer, **kwargs)¶ Function which will be executed at begin of each epoch
- Parameters
trainer (
AbstractNetworkTrainer
) –**kwargs – additional keyword arguments
- Returns
modified trainer attributes, where the name must correspond to the trainer’s attribute name
- Return type
-
at_epoch_end
(trainer, **kwargs)¶ Executes a single scheduling step
- Parameters
trainer (
PyTorchNetworkTrainer
) – the trainer class, which can be changed**kwargs – additional keyword arguments
- Returns
modified trainer
- Return type
PyTorchNetworkTrainer
-
MultiStepLRCallback¶
-
class
MultiStepLRCallback
(optimizer, milestones, gamma=0.1, last_epoch=-1)[source]¶ Bases:
delira.training.callbacks.pytorch_schedulers.DefaultPyTorchSchedulerCallback
Wraps PyTorch’s MultiStepLR Scheduler as callback
-
at_epoch_begin
(trainer, **kwargs)¶ Function which will be executed at begin of each epoch
- Parameters
trainer (
AbstractNetworkTrainer
) –**kwargs – additional keyword arguments
- Returns
modified trainer attributes, where the name must correspond to the trainer’s attribute name
- Return type
-
at_epoch_end
(trainer, **kwargs)¶ Executes a single scheduling step
- Parameters
trainer (
PyTorchNetworkTrainer
) – the trainer class, which can be changed**kwargs – additional keyword arguments
- Returns
modified trainer
- Return type
PyTorchNetworkTrainer
-
ReduceLROnPlateauCallback¶
-
class
ReduceLROnPlateauCallback
(optimizer, mode='min', factor=0.1, patience=10, verbose=False, threshold=0.0001, threshold_mode='rel', cooldown=0, min_lr=0, eps=1e-08)[source]¶ Bases:
delira.training.callbacks.pytorch_schedulers.DefaultPyTorchSchedulerCallback
Wraps PyTorch’s ReduceLROnPlateau Scheduler as Callback
-
at_epoch_begin
(trainer, **kwargs)¶ Function which will be executed at begin of each epoch
- Parameters
trainer (
AbstractNetworkTrainer
) –**kwargs – additional keyword arguments
- Returns
modified trainer attributes, where the name must correspond to the trainer’s attribute name
- Return type
-
StepLRCallback¶
-
class
StepLRCallback
(optimizer, step_size, gamma=0.1, last_epoch=-1)[source]¶ Bases:
delira.training.callbacks.pytorch_schedulers.DefaultPyTorchSchedulerCallback
Wraps PyTorch’s StepLR Scheduler as callback
-
at_epoch_begin
(trainer, **kwargs)¶ Function which will be executed at begin of each epoch
- Parameters
trainer (
AbstractNetworkTrainer
) –**kwargs – additional keyword arguments
- Returns
modified trainer attributes, where the name must correspond to the trainer’s attribute name
- Return type
-
at_epoch_end
(trainer, **kwargs)¶ Executes a single scheduling step
- Parameters
trainer (
PyTorchNetworkTrainer
) – the trainer class, which can be changed**kwargs – additional keyword arguments
- Returns
modified trainer
- Return type
PyTorchNetworkTrainer
-
CosineAnnealingLRCallbackPyTorch¶
-
CosineAnnealingLRCallbackPyTorch
¶ alias of
delira.training.callbacks.pytorch_schedulers.CosineAnnealingLRCallback
ExponentialLRCallbackPyTorch¶
-
ExponentialLRCallbackPyTorch
¶ alias of
delira.training.callbacks.pytorch_schedulers.ExponentialLRCallback
LambdaLRCallbackPyTorch¶
-
LambdaLRCallbackPyTorch
¶ alias of
delira.training.callbacks.pytorch_schedulers.LambdaLRCallback
MultiStepLRCallbackPyTorch¶
-
MultiStepLRCallbackPyTorch
¶ alias of
delira.training.callbacks.pytorch_schedulers.MultiStepLRCallback
ReduceLROnPlateauCallbackPyTorch¶
-
ReduceLROnPlateauCallbackPyTorch
¶ alias of
delira.training.callbacks.pytorch_schedulers.ReduceLROnPlateauCallback
StepLRCallbackPyTorch¶
-
StepLRCallbackPyTorch
¶ alias of
delira.training.callbacks.pytorch_schedulers.StepLRCallback