LambdaCallback 类tf_keras.callbacks.LambdaCallback(
on_epoch_begin=None,
on_epoch_end=None,
on_batch_begin=None,
on_batch_end=None,
on_train_begin=None,
on_train_end=None,
**kwargs
)
用于即时创建简单、自定义回调。
此回调使用匿名函数构建,这些函数将在适当的时候(在Model.{fit | evaluate | predict}过程中)被调用。请注意,回调期望位置参数,因为
on_epoch_begin 和 on_epoch_end 期望两个位置参数:epoch、logson_batch_begin 和 on_batch_end 期望两个位置参数:batch、logson_train_begin 和 on_train_end 期望一个位置参数:logs参数
示例
# Print the batch number at the beginning of every batch.
batch_print_callback = LambdaCallback(
on_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']}) + '\n'),
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])