Path: blob/master/site/zh-cn/guide/migrate/sessionrunhook_callback.ipynb
38974 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 支持跟踪和显示指标
在 TensorFlow.org 上查看
在 Google Colab 运行
在 Github 上查看源代码
下载笔记本