try*_*arn 5 training-data neural-network gradient-descent keras
我正在训练一个具有多重损失的网络,并且使用生成器创建数据并将数据馈送到我的网络中。
我已经检查了数据的结构,它总体上看起来不错,并且在大多数情况下也几乎按照预期进行了训练,但是在几乎每次随机时期,每个预测的训练损失突然从
# End of epoch 3
loss: 2.8845
Run Code Online (Sandbox Code Playgroud)
到
# Beginning of epoch 4
loss: 1.1921e-07
Run Code Online (Sandbox Code Playgroud)
我认为这可能是数据,但是,据我所知,数据通常很好,而且更加可疑,因为这将发生在随机时期(可能是因为在 SGD 期间选择了随机数据点?)但会持续存在在剩下的训练中。就像在 epoch 3 时,训练损失减少到1.1921e-07那么它将在 epoch 4、epoch 5 等中继续这样。
但是,有时它到达 epoch 5 并且还没有这样做,然后可能会在 epoch 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
Run Code Online (Sandbox Code Playgroud)
此后的下一个时期都有训练损失 1.1921e-07
不完全确定这个答案有多令人满意,但我的发现似乎表明,一起使用多个 categorical_crossentropy 损失似乎会导致超级不稳定的网络?将其替换为其他损失函数可以解决数据保持不变的问题。
| 归档时间: |
|
| 查看次数: |
1170 次 |
| 最近记录: |