當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.keras.callbacks.LambdaCallback用法及代碼示例


即時創建簡單的自定義回調的回調。

繼承自:Callback

用法

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
)

參數

  • on_epoch_begin 在每個紀元開始時調用。
  • on_epoch_end 在每個紀元結束時調用。
  • on_batch_begin 在每批開始時調用。
  • on_batch_end 在每批結束時調用。
  • on_train_begin 在模型訓練開始時調用。
  • on_train_end 在模型訓練結束時調用。

此回調由匿名函數構造,這些函數將在適當的時間(在 Model.{fit | evaluate | predict} 期間)調用。請注意,回調需要位置參數,如:

  • on_epoch_beginon_epoch_end 需要兩個位置參數:epoch , logs
  • on_batch_beginon_batch_end 需要兩個位置參數:batch , logs
  • on_train_beginon_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])

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.callbacks.LambdaCallback。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。