如何用张量板监控keras中的梯度消失和爆炸?

How to monitor gradient vanish and explosion in keras with tensorboard?

我想用keras监控tensorboard的梯度变化,判断梯度消失还是爆炸。我该怎么办?

要在 Tensorboard 中可视化训练,请将 keras.callbacks.TensorBoard 回调添加到 model.fit 函数。不要忘记设置 write_grads=True 以查看那里的渐变。训练开始后,您可以 运行...

tensorboard --logdir=/full_path_to_your_logs

... 从命令行将浏览器指向 htttp://localhost:6006。请参阅 .

中的示例代码

要检查梯度消失/爆炸,请注意感兴趣层("Distributions" 选项卡)中的梯度分布和绝对值:

  • 如果分布呈高峰值并集中在 0 附近,则梯度可能正在消失。这是 它在实践中的样子。
  • 如果分布的绝对值随时间快速增长,则梯度呈爆炸式增长。通常同一层的输出值也会很快变成NaNs。