Path: blob/master/site/ja/guide/migrate/logging_stop_hook.ipynb
25118 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 コールバックへ