Callback¶
- class pytorch_lightning.callbacks.Callback[source]¶
 Bases:
objectAbstract base class used to build new callbacks.
Subclass this class and override any of the relevant hooks
- load_state_dict(state_dict)[source]¶
 Called when loading a checkpoint, implement to reload callback state given callback’s
state_dict.
- on_after_backward(trainer, pl_module)[source]¶
 Called after
loss.backward()and before optimizers are stepped.- Return type:
 
- on_batch_end(trainer, pl_module)[source]¶
 Deprecated since version v1.6: This callback hook was deprecated in v1.6 and will be removed in v1.8. Use
on_train_batch_endinstead.Called when the training batch ends.
- Return type:
 
- on_batch_start(trainer, pl_module)[source]¶
 Deprecated since version v1.6: This callback hook was deprecated in v1.6 and will be removed in v1.8. Use
on_train_batch_startinstead.Called when the training batch begins.
- Return type:
 
- on_before_accelerator_backend_setup(trainer, pl_module)[source]¶
 Deprecated since version v1.6: This callback hook was deprecated in v1.6 and will be removed in v1.8. Use
setup()instead.Called before accelerator is being setup.
- Return type:
 
- on_before_optimizer_step(trainer, pl_module, optimizer, opt_idx)[source]¶
 Called before
optimizer.step().- Return type:
 
- on_before_zero_grad(trainer, pl_module, optimizer)[source]¶
 Called before
optimizer.zero_grad().- Return type:
 
- on_configure_sharded_model(trainer, pl_module)[source]¶
 Deprecated since version v1.6: This callback hook was deprecated in v1.6 and will be removed in v1.8. Use setup() instead.
Called before configure sharded model.
- Return type:
 
- on_epoch_end(trainer, pl_module)[source]¶
 Deprecated since version v1.6: This callback hook was deprecated in v1.6 and will be removed in v1.8. Use
on_<train/validation/test>_epoch_endinstead.Called when either of train/val/test epoch ends.
- Return type:
 
- on_epoch_start(trainer, pl_module)[source]¶
 Deprecated since version v1.6: This callback hook was deprecated in v1.6 and will be removed in v1.8. Use
on_<train/validation/test>_epoch_startinstead.Called when either of train/val/test epoch begins.
- Return type:
 
- on_exception(trainer, pl_module, exception)[source]¶
 Called when any trainer execution is interrupted by an exception.
- Return type:
 
- on_init_end(trainer)[source]¶
 Deprecated since version v1.6: This callback hook was deprecated in v1.6 and will be removed in v1.8.
Called when the trainer initialization ends, model has not yet been set.
- Return type:
 
- on_init_start(trainer)[source]¶
 Deprecated since version v1.6: This callback hook was deprecated in v1.6 and will be removed in v1.8.
Called when the trainer initialization begins, model has not yet been set.
- Return type:
 
- on_load_checkpoint(trainer, pl_module, callback_state)[source]¶
 Called when loading a model checkpoint, use to reload state.
- Parameters:
 pl_module¶ (
LightningModule) – the currentLightningModuleinstance.callback_state¶ (
Dict[str,Any]) – the callback state returned byon_save_checkpoint.
Note
The
on_load_checkpointwon’t be called with an undefined state. If youron_load_checkpointhook behavior doesn’t rely on a state, you will still need to overrideon_save_checkpointto return adummy state.Deprecated since version v1.6: This callback hook will change its signature and behavior in v1.8. If you wish to load the state of the callback, use
Callback.load_state_dictinstead. In v1.8Callback.on_load_checkpoint(checkpoint)will receive the entire loaded checkpoint dictionary instead of only the callback state from the checkpoint.- Return type:
 
- on_predict_batch_end(trainer, pl_module, outputs, batch, batch_idx, dataloader_idx)[source]¶
 Called when the predict batch ends.
- Return type:
 
- on_predict_batch_start(trainer, pl_module, batch, batch_idx, dataloader_idx)[source]¶
 Called when the predict batch begins.
- Return type:
 
- on_predict_epoch_end(trainer, pl_module, outputs)[source]¶
 Called when the predict epoch ends.
- Return type:
 
- on_predict_epoch_start(trainer, pl_module)[source]¶
 Called when the predict epoch begins.
- Return type:
 
- on_pretrain_routine_end(trainer, pl_module)[source]¶
 Deprecated since version v1.6: This callback hook was deprecated in v1.6 and will be removed in v1.8. Use
on_fit_startinstead.Called when the pretrain routine ends.
- Return type:
 
- on_pretrain_routine_start(trainer, pl_module)[source]¶
 Deprecated since version v1.6: This callback hook was deprecated in v1.6 and will be removed in v1.8. Use
on_fit_startinstead.Called when the pretrain routine begins.
- Return type:
 
- on_sanity_check_end(trainer, pl_module)[source]¶
 Called when the validation sanity check ends.
- Return type:
 
- on_sanity_check_start(trainer, pl_module)[source]¶
 Called when the validation sanity check starts.
- Return type:
 
- on_save_checkpoint(trainer, pl_module, checkpoint)[source]¶
 Called when saving a checkpoint to give you a chance to store anything else you might want to save.
- Parameters:
 pl_module¶ (
LightningModule) – the currentLightningModuleinstance.checkpoint¶ (
Dict[str,Any]) – the checkpoint dictionary that will be saved.
- Return type:
 - Returns:
 None or the callback state. Support for returning callback state will be removed in v1.8.
Deprecated since version v1.6: Returning a value from this method was deprecated in v1.6 and will be removed in v1.8. Implement
Callback.state_dictinstead to return state. In v1.8Callback.on_save_checkpointcan only return None.
- on_test_batch_end(trainer, pl_module, outputs, batch, batch_idx, dataloader_idx)[source]¶
 Called when the test batch ends.
- Return type:
 
- on_test_batch_start(trainer, pl_module, batch, batch_idx, dataloader_idx)[source]¶
 Called when the test batch begins.
- Return type:
 
- on_train_batch_end(trainer, pl_module, outputs, batch, batch_idx)[source]¶
 Called when the train batch ends.
- Return type:
 
- on_train_batch_start(trainer, pl_module, batch, batch_idx)[source]¶
 Called when the train batch begins.
- Return type:
 
- on_train_epoch_end(trainer, pl_module)[source]¶
 Called when the train epoch ends.
To access all batch outputs at the end of the epoch, either:
Implement training_epoch_end in the LightningModule and access outputs via the module OR
Cache data across train batch hooks inside the callback implementation to post-process in this hook.
- Return type:
 
- on_validation_batch_end(trainer, pl_module, outputs, batch, batch_idx, dataloader_idx)[source]¶
 Called when the validation batch ends.
- Return type:
 
- on_validation_batch_start(trainer, pl_module, batch, batch_idx, dataloader_idx)[source]¶
 Called when the validation batch begins.
- Return type:
 
- on_validation_epoch_start(trainer, pl_module)[source]¶
 Called when the val epoch begins.
- Return type:
 
- on_validation_start(trainer, pl_module)[source]¶
 Called when the validation loop begins.
- Return type:
 
- setup(trainer, pl_module, stage=None)[source]¶
 Called when fit, validate, test, predict, or tune begins.
- Return type:
 
- teardown(trainer, pl_module, stage=None)[source]¶
 Called when fit, validate, test, predict, or tune ends.
- Return type:
 
- property state_key: str¶
 Identifier for the state of the callback.
Used to store and retrieve a callback’s state from the checkpoint dictionary by
checkpoint["callbacks"][state_key]. Implementations of a callback need to provide a unique state key if 1) the callback has state and 2) it is desired to maintain the state of multiple instances of that callback.- Return type: