Path: blob/master/site/ja/addons/tutorials/average_optimizers_callback.ipynb
25118 views
Kernel: Python 3
Copyright 2020 The TensorFlow Authors.
In [ ]:
概要
このノートブックでは、TensorFlow アドオンパッケージから移動平均オプティマイザとモデル平均チェックポイントを使用する方法を紹介します。
移動平均化
移動平均化の利点は、最新のバッチで激しい損失の変化や不規則なデータ表現が発生しにくいことです。ある時点までモデルのトレーニングがスムーズになり、より一般的なアイデアを提供します。
確率的平均化
確率的重み平均化は、より広いオプティマイザに収束します。これは幾何学的なアンサンブルに似ています。確率的重み平均化は、他のオプティマイザのラッパーとして使用し、内側のオプティマイザのトラジェクトリの異なる点からの結果を平均化することでモデルの性能を向上させる、シンプルな方法です。
モデル平均チェックポイント
callbacks.ModelCheckpoint
にはトレーニングの途中で移動平均の重みを保存するオプションがないため、モデル平均オプティマイザにはカスタムコールバックが必要でした。update_weights
パラメータを使用すると、ModelAverageCheckpoint
で以下が可能になります。
モデルに移動平均重みを割り当てて保存する。
古い平均化されていない重みはそのままにして、保存されたモデルは平均化された重みを使用する。
セットアップ
In [ ]:
In [ ]:
In [ ]:
モデルを構築する
In [ ]:
データセットを準備する
In [ ]:
ここでは、次の 3 つのオプティマイザを比較してみます。
ラップされていない SGD
移動平均を適用した SGD
確率的重み平均を適用した SGD
同じモデルを使用してパフォーマンスを見てみましょう。
In [ ]:
MovingAverage
と StochasticAverage
オプティマイザはどちらも ModelAverageCheckpoint
を使用します。
In [ ]:
モデルをトレーニングする
Vanilla SGD オプティマイザ
In [ ]:
In [ ]:
移動平均 SGD
In [ ]:
In [ ]:
確率的重み平均 SGD
In [ ]:
In [ ]: