View source on GitHub
|
Callback to save and load model state using Orbax with a similar API to ModelCheckpoint.
Inherits From: Callback
tf.keras.callbacks.OrbaxCheckpoint(
directory,
monitor='val_loss',
verbose=0,
save_best_only=False,
mode='auto',
save_freq='epoch',
initial_value_threshold=None,
max_to_keep=1,
save_on_background=True,
save_weights_only=False
)
This callback saves the model's weights and optimizer state asynchronously using Orbax, allowing training to continue without blocking for I/O.
Multi-host Support: When running in a multi-host distributed training environment with JAX backend, this callback automatically coordinates checkpointing across all hosts to ensure consistency and proper synchronization. Multi-host checkpointing is only supported on JAX.
Example:
model.compile(loss=..., optimizer=..., metrics=['accuracy'])
EPOCHS = 10
checkpoint_dir = '/tmp/ckpt'
orbax_checkpoint_callback = keras.callbacks.OrbaxCheckpoint(
directory=checkpoint_dir,
monitor='val_accuracy',
mode='max',
save_best_only=True)
# Model is saved at the end of every epoch, if it's the best seen so far.
model.fit(epochs=EPOCHS, callbacks=[orbax_checkpoint_callback])
# Alternatively, save checkpoints every N batches -
orbax_checkpoint_callback = keras.callbacks.OrbaxCheckpoint(
directory=checkpoint_dir,
save_freq=100) # Save every 100 batches
model.fit(epochs=EPOCHS, callbacks=[orbax_checkpoint_callback])
Attributes | |
|---|---|
model
|
|
Methods
is_multihost_enabled
is_multihost_enabled()
Return True if multi-host checkpointing is enabled and initialized.
This method can be used to check if the callback is operating in a multi-host distributed training environment. Multi-host checkpointing is only supported on JAX backend.
| Returns | |
|---|---|
bool
|
True if multi-host support is active, False otherwise. |
is_primary_host
is_primary_host()
Return True if this process is the primary host in multi-host setup.
In multi-host environments, only the primary host typically handles logging and coordination tasks. Multi-host checkpointing is only supported on JAX backend.
| Returns | |
|---|---|
bool
|
True if this is the primary host, False otherwise. Always returns True in single-host environments. |
on_batch_begin
on_batch_begin(
batch, logs=None
)
A backwards compatibility alias for on_train_batch_begin.
on_batch_end
on_batch_end(
batch, logs=None
)
A backwards compatibility alias for on_train_batch_end.
on_epoch_begin
on_epoch_begin(
epoch, logs=None
)
Called at the start of an epoch.
Subclasses should override for any actions to run. This function should only be called during TRAIN mode.
| Args | |
|---|---|
epoch
|
Integer, index of epoch. |
logs
|
Dict. Currently no data is passed to this argument for this method but that may change in the future. |
on_epoch_end
on_epoch_end(
epoch, logs=None
)
Called at the end of an epoch.
Subclasses should override for any actions to run. This function should only be called during TRAIN mode.
| Args | |
|---|---|
epoch
|
Integer, index of epoch. |
logs
|
Dict, metric results for this training epoch, and for the
validation epoch if validation is performed. Validation result
keys are prefixed with val_. For training epoch, the values of
the Model's metrics are returned. Example:
{'loss': 0.2, 'accuracy': 0.7}.
|
on_predict_batch_begin
on_predict_batch_begin(
batch, logs=None
)
Called at the beginning of a batch in predict methods.
Subclasses should override for any actions to run.
Note that if the steps_per_execution argument to compile in
Model is set to N, this method will only be called every
N batches.
| Args | |
|---|---|
batch
|
Integer, index of batch within the current epoch. |
logs
|
Dict. Currently no data is passed to this argument for this method but that may change in the future. |
on_predict_batch_end
on_predict_batch_end(
batch, logs=None
)
Called at the end of a batch in predict methods.
Subclasses should override for any actions to run.
Note that if the steps_per_execution argument to compile in
Model is set to N, this method will only be called every
N batches.
| Args | |
|---|---|
batch
|
Integer, index of batch within the current epoch. |
logs
|
Dict. Aggregated metric results up until this batch. |
on_predict_begin
on_predict_begin(
logs=None
)
Called at the beginning of prediction.
Subclasses should override for any actions to run.
| Args | |
|---|---|
logs
|
Dict. Currently no data is passed to this argument for this method but that may change in the future. |
on_predict_end
on_predict_end(
logs=None
)
Called at the end of prediction.
Subclasses should override for any actions to run.
| Args | |
|---|---|
logs
|
Dict. Currently no data is passed to this argument for this method but that may change in the future. |
on_test_batch_begin
on_test_batch_begin(
batch, logs=None
)
Called at the beginning of a batch in evaluate methods.
Also called at the beginning of a validation batch in the fit
methods, if validation data is provided.
Subclasses should override for any actions to run.
Note that if the steps_per_execution argument to compile in
Model is set to N, this method will only be called every
N batches.
| Args | |
|---|---|
batch
|
Integer, index of batch within the current epoch. |
logs
|
Dict. Currently no data is passed to this argument for this method but that may change in the future. |
on_test_batch_end
on_test_batch_end(
batch, logs=None
)
Called at the end of a batch in evaluate methods.
Also called at the end of a validation batch in the fit
methods, if validation data is provided.
Subclasses should override for any actions to run.
Note that if the steps_per_execution argument to compile in
Model is set to N, this method will only be called every
N batches.
| Args | |
|---|---|
batch
|
Integer, index of batch within the current epoch. |
logs
|
Dict. Aggregated metric results up until this batch. |
on_test_begin
on_test_begin(
logs=None
)
Called at the beginning of evaluation or validation.
Subclasses should override for any actions to run.
| Args | |
|---|---|
logs
|
Dict. Currently no data is passed to this argument for this method but that may change in the future. |
on_test_end
on_test_end(
logs=None
)
Called at the end of evaluation or validation.
Subclasses should override for any actions to run.
| Args | |
|---|---|
logs
|
Dict. Currently the output of the last call to
on_test_batch_end() is passed to this argument for this method
but that may change in the future.
|
on_train_batch_begin
on_train_batch_begin(
batch, logs=None
)
Called at the beginning of a training batch in fit methods.
Subclasses should override for any actions to run.
Note that if the steps_per_execution argument to compile in
Model is set to N, this method will only be called every
N batches.
| Args | |
|---|---|
batch
|
Integer, index of batch within the current epoch. |
logs
|
Dict. Currently no data is passed to this argument for this method but that may change in the future. |
on_train_batch_end
on_train_batch_end(
batch, logs=None
)
Called at the end of a training batch in fit methods.
Subclasses should override for any actions to run.
Note that if the steps_per_execution argument to compile in
Model is set to N, this method will only be called every
N batches.
| Args | |
|---|---|
batch
|
Integer, index of batch within the current epoch. |
logs
|
Dict. Aggregated metric results up until this batch. |
on_train_begin
on_train_begin(
logs=None
)
Called at the beginning of training.
Subclasses should override for any actions to run.
| Args | |
|---|---|
logs
|
Dict. Currently no data is passed to this argument for this method but that may change in the future. |
on_train_end
on_train_end(
logs=None
)
Called at the end of training.
Subclasses should override for any actions to run.
| Args | |
|---|---|
logs
|
Dict. Currently the output of the last call to
on_epoch_end() is passed to this argument for this method but
that may change in the future.
|
set_model
set_model(
model
)
set_params
set_params(
params
)
wait_until_finished
wait_until_finished()
Wait for any in-progress checkpoint operations to complete. This method blocks until all asynchronous checkpoint save operations have completed across all hosts in a multi-host setup.
View source on GitHub