Path: blob/master/site/ja/guide/migrate/logging_stop_hook.ipynb
38983 views
Copyright 2021 The TensorFlow Authors.
LoggingTensorHook と StopAtStepHook を Keras コールバックに移行する
TensorFlow 1 では、tf.estimator.LoggingTensorHook を使用してテンソルを監視および記録しますが、tf.estimator.StopAtStepHook は tf.estimator.Estimator でトレーニングする場合に指定されたステップでトレーニングを停止するのに役立ちます。このノートブックは、Model.fit でカスタム Keras コールバック(tf.keras.callbacks.Callback)を使用して、これらの API から TensorFlow 2 の同等のものに移行する方法を示しています。
Keras コールバックは、組み込みの Keras Model.fit/Model.evaluate/Model.predict API でのトレーニング/評価/予測中のさまざまな時点で呼び出されるオブジェクトです。tf.keras.callbacks.Callback API ドキュメントでコールバックの詳細を学ぶことができます。また、独自のコールバックの作成および組み込みメソッドを使用したトレーニングと評価(コールバックの使用セクション)ガイドも参照してください。 TensorFlow 1 の SessionRunHook から TensorFlow 2 の Keras コールバックへの移行については、支援ロジック付きトレーニングの移行ガイドをご覧ください。
セットアップ
インポートとデモンストレーション用の単純なデータセットから始めます。
TensorFlow 1: テンソルをログに記録し、tf.estimator API でトレーニングを停止する
TensorFlow 1 では、さまざまなフックを定義してトレーニング動作を制御します。次に、これらのフックを tf.estimator.EstimatorSpec に渡します。
以下に例を示します。
テンソル(モデルの重みや損失など)を監視/記録するには、
tf.estimator.LoggingTensorHook(tf.train.LoggingTensorHookはそのエイリアスです)を使用します。特定のステップでトレーニングを停止するには、
tf.estimator.StopAtStepHookを使用します(tf.train.StopAtStepHookはそのエイリアスです)。
TensorFlow 2: カスタムコールバックと Model.fit を使用してテンソルをログに記録し、トレーニングを停止する
TensorFlow 2 では、組み込みの Keras Model.fit(または Model.evaluate)をトレーニング/評価に使用する場合、カスタム tf.keras.callbacks.Callback を定義することで、テンソルの監視とトレーニングの停止を構成できます。次に、それらを Model.fit(またはModel.evaluate)の callbacks パラメータに渡します。 (詳細については、独自のコールバックの作成ガイドを参照してください。)
以下に例を示します。
StopAtStepHookの機能を再作成するには、on_batch_endメソッドをオーバーライドして特定のステップ数の後にトレーニングを停止するカスタムコールバック(以下ではStopAtStepCallbackという名前)を定義します。LoggingTensorHookの動作を再作成するには、名前によるテンソルへのアクセスがサポートされていないため、ログに記録されたテンソルを手動で記録および出力するカスタムコールバック(LoggingTensorCallback)を定義します。カスタムコールバック内にログ記録の頻度を実装することもできます。以下の例では、2 ステップごとに重みを出力します。 N 秒ごとにログを記録するなどの他のストラテジーも可能です。
終了したら、新しいコールバック(StopAtStepCallback と LoggingTensorCallback)を Model.fit の callbacks パラメータに渡します。
Next steps
コールバックの詳細については、次を参照してください。
API ドキュメント:
tf.keras.callbacks.Callbackガイド: 独自のコールバックの作成
ガイド: 組み込みメソッドを使用したトレーニングと評価(コールバックの使用セクション)
次の移行関連のリソースも役立つ場合があります。
早期停止移行ガイド:
tf.keras.callbacks.EarlyStoppingは組み込みの早期停止コールバックですTensorBoard 移行ガイド: TensorBoard により、指標の追跡と表示が可能になります
支援ロジック付きトレーニングの移行ガイド: TensorFlow 1 の
SessionRunHookから TensorFlow 2 の Keras コールバックへ
TensorFlow.org で表示
Google Colab で実行
GitHub でソースを表示
ノートブックをダウンロード