View source on GitHub |
Callback for creating simple, custom callbacks on-the-fly.
Inherits From: Callback
tf.keras.callbacks.LambdaCallback(
on_epoch_begin=None,
on_epoch_end=None,
on_train_begin=None,
on_train_end=None,
on_train_batch_begin=None,
on_train_batch_end=None,
**kwargs
)
Used in the notebooks
Used in the tutorials |
---|
This callback is constructed with anonymous functions that will be called
at the appropriate time (during `Model.{fit | evaluate | predict}`).
Note that the callbacks expects positional arguments, as:
- `on_epoch_begin` and `on_epoch_end` expect two positional arguments:
`epoch`, `logs`
- `on_train_begin` and `on_train_end` expect one positional argument:
`logs`
- `on_train_batch_begin` and `on_train_batch_end` expect two positional
arguments: `batch`, `logs`
- See `Callback` class definition for the full list of functions and their
expected arguments.
Args:
on_epoch_begin: called at the beginning of every epoch.
on_epoch_end: called at the end of every epoch.
on_train_begin: called at the beginning of model training.
on_train_end: called at the end of model training.
on_train_batch_begin: called at the beginning of every train batch.
on_train_batch_end: called at the end of every train batch.
kwargs: Any function in `Callback` that you want to override by
passing `function_name=function`. For example,
`LambdaCallback(.., on_train_end=train_end_fn)`. The custom function
needs to have same arguments as the ones defined in `Callback`.
Example:
```python
# Print the batch number at the beginning of every batch.
batch_print_callback = LambdaCallback(
on_train_batch_begin=lambda batch,logs: print(batch))
# Stream the epoch loss to a file in JSON format. The file content
# is not well-formed JSON but rather has a JSON object per line.
import json
json_log = open('loss_log.json', mode='wt', buffering=1)
json_logging_callback = LambdaCallback(
on_epoch_end=lambda epoch, logs: json_log.write(
json.dumps({'epoch': epoch, 'loss': logs['loss']}) + '
'),
on_train_end=lambda logs: json_log.close()
)
# Terminate some processes after having finished model training.
processes = ...
cleanup_callback = LambdaCallback(
on_train_end=lambda logs: [
p.terminate() for p in processes if p.is_alive()])
model.fit(...,
callbacks=[batch_print_callback,
json_logging_callback,
cleanup_callback])
```
Attributes | |
---|---|
model
|
Methods
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
)