Tensorflow 梯度分布上的张力板共有尖峰

Tensorflow 梯度分布上的张力板共有尖峰,tensorflow,histogram,distribution,tensorboard,Tensorflow,Histogram,Distribution,Tensorboard,我正在使用Keras(2.1.6)和Tensorflow(1.4.0)作为后端培训一个定制的短网络。训练时,我使用tensorboard回调函数: tensorboard = keras.callbacks.TensorBoard( log_dir=OUTPUT_PATH, histogram_freq=EPOCH_STEPS, batch_size=BATCH_SIZE, write_grads=True) 这产生了预期的结果,但当我在TensorBoard上

我正在使用Keras(2.1.6)和Tensorflow(1.4.0)作为后端培训一个定制的短网络。训练时,我使用tensorboard回调函数:

tensorboard = keras.callbacks.TensorBoard(
    log_dir=OUTPUT_PATH,
    histogram_freq=EPOCH_STEPS,
    batch_size=BATCH_SIZE,
    write_grads=True)
这产生了预期的结果,但当我在TensorBoard上观察梯度分布时,我在图上看到奇怪的东西,它们在
直方图\u freq
变量的同一步重复

例如,对于
直方图\u freq=1
和具有1个内核(1,1)的卷积层,分布为:

在这两幅图像中,您都可以看到间隔为1的尖峰。 作为附加信息,正在训练的网络处理分辨率为320x200的图像,输出为完整图像320x200,与标签(分割)进行比较。
可能问题在于?

这是一个胡乱猜测,但看起来梯度在每个纪元开始时都会变得疯狂,所以可能您在每个纪元开始时意外运行了
tf.global\u variables\u initializer()


权重分布是否显示相同的模式?

谢谢Peter的回答,我正在使用Keras,权重分布似乎在不断更新。我将尝试做一个超小的例子,其他人可以看到同样的行为?也许这可以解释。好吧,这是个好主意!在这里,我打开了一个关于KerasGitHub的问题(我认为它与此相关):.Idea:如果你根本不做验证怎么办?你能这样测试吗?也许验证会把事情搞砸。另一个可能的事情是在每个时代开始时重置事情。