web-dev-qa-db-ja.com

テンソルボードを使用して、ケラの勾配消失と爆発を監視する方法は?

テンソルボードの勾配変化をケラで監視して、勾配が消失するか爆発するかを判断したいと思います。私は何をすべきか?

9
Joey Chia

Tensorboardでトレーニングを視覚化するには、 keras.callbacks.TensorBoard コールバックをmodel.fit関数に追加します。そこにグラデーションを表示するには、write_grads=Trueを設定することを忘れないでください。トレーニング開始直後、走ることができます...

tensorboard --logdir=/full_path_to_your_logs

...コマンドラインからブラウザでhtttp://localhost:6006を指定します。 この質問 のサンプルコードを参照してください。

グラデーションの消失/爆発をチェックするには、対象のレイヤーのグラデーションの分布と絶対値に注意してください([分布]タブ)。

  • 分布が非常にピークに達し、0付近に集中している場合、勾配はおそらく消失しています。これが 具体例 実際の様子です。
  • 分布が時間とともに絶対値で急速に増加している場合、勾配は爆発しています。多くの場合、同じレイヤーの出力値も非常に速くNaNsになります。
10
Maxim