Path: blob/master/site/zh-cn/guide/migrate/sessionrunhook_callback.ipynb
25118 views
Copyright 2021 The TensorFlow Authors.
将 SessionRunHook 迁移到 Keras 回调
在 TensorFlow 1 中,要自定义训练的行为,可以使用 tf.estimator.SessionRunHook
和 tf.estimator.Estimator
。本指南演示了如何使用 tf.keras.callbacks.Callback
API 从 SessionRunHook
迁移到 TensorFlow 2 的自定义回调,此 API 与 Keras Model.fit
一起用于训练(以及 Model.evaluate
和 Model.predict
)。您将通过实现 SessionRunHook
和 Callback
任务来学习如何做到这一点,此任务会在训练期间测量每秒的样本数。
回调的示例为检查点保存 (tf.keras.callbacks.ModelCheckpoint
) 和 TensorBoard 摘要编写。Keras 回调是在内置 Keras Model.fit
/Model.evaluate
/Model.predict
API 中的训练/评估/预测期间的不同点调用的对象。可以在 tf.keras.callbacks.Callback
API 文档以及编写自己的回调和使用内置方法进行训练和评估(使用回调部分)指南中详细了解回调。
安装
从导入和用于演示目的的简单数据集开始:
TensorFlow 1:使用 tf.estimator API 创建自定义 SessionRunHook
下面的 TensorFlow 1 示例展示了如何设置自定义 SessionRunHook
以在训练期间测量每秒的样本数。创建钩子 (LoggerHook
) 后,将其传递给 tf.estimator.Estimator.train
的 hooks
参数。
TensorFlow 2:为 Model.fit 创建自定义 Keras 回调
在 TensorFlow 2 中,当您使用内置 Keras Model.fit
(或 Model.evaluate
)进行训练/评估时,可以配置自定义 tf.keras.callbacks.Callback
,然后将其传递给 Model.fit
(或 Model.evaluate
)的 callbacks
参数。(在编写自己的回调指南中了解详情。)
在下面的示例中,您将编写一个自定义 tf.keras.callbacks.Callback
来记录各种指标 – 它将测量每秒的样本数,这应该与前面的 SessionRunHook
示例中的指标相当。
后续步骤
通过下列方式详细了解回调:
API 文档:
tf.keras.callbacks.Callback
指南:编写自己的回调
指南:使用内置方法进行训练和评估(使用回调部分)
此外,您可能还会发现下列与迁移相关的资源十分有用:
提前停止迁移指南:
tf.keras.callbacks.EarlyStopping
是一个内置的提前停止回调TensorBoard 迁移指南:TensorBoard 支持跟踪和显示指标