我用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上的渐变分布时,我在图上看到了奇怪的东西,它们在histogram_freq
变量的同一步重复。
例如,对于histogram_freq=1
和具有1个内核(1,1)的卷积层,分布为:
在两张图像中,您都可以看到间隔为1的尖峰。 作为附加信息,被训练的网络在分辨率为320×200的图像上工作,输出是320x200的完整图像,与其标签(分割)进行比较。 也许问题出在那?
答案 0 :(得分:0)
一个疯狂的猜测,但看起来渐变在每个时代的开始都变得疯狂,所以也许你不小心在每个时代的开始运行tf.global_variables_initializer()
?
重量分布是否显示相同的模式?