神经网络 – keras损失在新纪元开始时随机跳跃到零

我正在训练一个网络,它有多个损失,并且使用生成器创建数据并将数据输入网络.

我已经检查了数据的结构,它看起来很普遍,并且它在大多数时间也按预期进行训练,但几乎每次都在随机时期,每次预测的训练损失突然从

# End of epoch 3
loss: 2.8845 

# Beginning of epoch 4
loss: 1.1921e-07

我认为这可能是数据,但是,据我所知,数据通常很好,而且更加可疑,因为这将发生在一个随机时期(可能是因为在SGD期间选择了一个随机数据点?)但是会持续存在在整个培训期间.如同在第3纪元,训练损失减少到1.1921e-07那么它将在第4纪元,第5纪元等继续这样.

然而,有时候它达到了第5纪元并且还没有完成,然后可能会在6或7纪元进行.

在数据之外是否有任何可行的原因可能导致这种情况?甚至会发生一些肮脏的数据点导致这么快?

谢谢

编辑:

结果:

300/300 [==============================] - 339s - loss: 3.2912 - loss_1: 1.8683 - loss_2: 9.1352 - loss_3: 5.9845 - 
val_loss: 1.1921e-07 - val_loss_1: 1.1921e-07 - val_loss_2: 1.1921e-07 - val_loss_3: 1.1921e-07

在此之后的下一个时期都有火车头损失1.1921e-07

最佳答案 不完全确定这是多么令人满意的答案,但我的发现似乎表明,使用多个categorical_crossentropy损失一起似乎导致超级不稳定的网络?将其转换为其他损失函数可以解决数据保持不变的问题.

点赞