是什么导致训练准确性大幅度提高以及各个时期之间的损失?

朝鲜人

在python中使用Tensorflow 2.0训练神经网络时,我注意到训练准确性和损失在各个时期之间发生了巨大变化。我知道打印的度量标准是整个时期的平均值,但是每次平均值之后,准确性似乎都会大大下降,尽管平均值总是在增加。

损失也表现出这种行为,每个时期显着下降,但平均值增加。这是我的意思的图片(来自Tensorboard):

奇怪的训练行为

我已经在自己实现的所有模型中都注意到了这种行为,所以这可能是一个错误,但是我想对这种行为是否正常以及是否是正常行为有其他看法?

Also, I'm using a fairly large dataset (roughly 3 million examples). Batch size is 32 and each dot in the accuracy/loss graphs represent 50 batches (2k on the graph = 100k batches). The learning rate graph is 1:1 for batches.

ChosunOne

It seems this phenomenon comes from the fact that the model has a high batch-to-batch variance in terms of accuracy and loss. This is illustrated if I take a graph of the model with the actual metrics per step as opposed to the average over the epoch:

在此处输入图片说明

Here you can see that the model can vary widely. (This graph is just for one epoch, but the fact remains).

Since the average metrics were being reported per epoch, at the beginning of the next epoch it is highly likely that the average metrics will be lower than the previous average, leading to a dramatic drop in the running average value, illustrated in red below:

在此处输入图片说明

如果您将红色图表中的不连续性想象为历时的过渡,那么您会明白为什么会在问题中观察到这种现象。

TL; DR对于每个批次,模型的输出差异很大。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

什么代表了 Keras 中训练结果的损失或准确性

来自分类Dev

为什么训练准确性没有提高?

来自分类Dev

验证损失和准确性提高

来自分类Dev

ConvNet:验证损失并未大幅减少,但准确性正在提高

来自分类Dev

什么是训练准确性和训练损失?为什么我们需要计算它们?

来自分类Dev

如何提高模型损失和准确性?

来自分类Dev

Keras / Tensoflow训练期间报告的“准确性”是什么意思?

来自分类Dev

为什么我的Tensorflow Keras模型在训练时会输出奇怪的损失和准确性值?

来自分类Dev

验证准确性和验证损失几乎在每个时期都保持恒定

来自分类Dev

提高SVM的准确性

来自分类Dev

当我训练我的Caffe模型时,损失总是保持很大的值,并且准确性并没有提高。

来自分类Dev

训练准确性好,但验证准确性差

来自分类Dev

在训练阶段,我的CNN验证准确性和损失函数的行为怪异

来自分类Dev

CNN准确性与损失选择

来自分类Dev

损失或准确性没有变化

来自分类Dev

训练模型字符识别的准确性并未提高

来自分类Dev

提高缩小图像的准确性

来自分类Dev

辍学层将提高准确性

来自分类Dev

随机森林提高准确性

来自分类Dev

提高QR码读取的准确性

来自分类Dev

训练CNN后准确性低

来自分类Dev

为什么将官方Keras mnist示例的非常简单的移植到tensorflow 2.x会导致准确性大幅下降?

来自分类Dev

比较模型之间的AUC,对数损失和准确性得分

来自分类Dev

为什么并行化会如此大幅度地降低性能?

来自分类Dev

为什么并行化会如此大幅度地降低性能?

来自分类Dev

为什么我的损失和准确性图有些不稳定?

来自分类Dev

Tensorflow二进制分类训练的损失不会减少,准确性会保持在50%左右

来自分类Dev

为什么数据增强不能提高CNN中纹理分类的准确性?

来自分类Dev

如何在深度学习中提高准确性和验证准确性

Related 相关文章

  1. 1

    什么代表了 Keras 中训练结果的损失或准确性

  2. 2

    为什么训练准确性没有提高?

  3. 3

    验证损失和准确性提高

  4. 4

    ConvNet:验证损失并未大幅减少,但准确性正在提高

  5. 5

    什么是训练准确性和训练损失?为什么我们需要计算它们?

  6. 6

    如何提高模型损失和准确性?

  7. 7

    Keras / Tensoflow训练期间报告的“准确性”是什么意思?

  8. 8

    为什么我的Tensorflow Keras模型在训练时会输出奇怪的损失和准确性值?

  9. 9

    验证准确性和验证损失几乎在每个时期都保持恒定

  10. 10

    提高SVM的准确性

  11. 11

    当我训练我的Caffe模型时,损失总是保持很大的值,并且准确性并没有提高。

  12. 12

    训练准确性好,但验证准确性差

  13. 13

    在训练阶段,我的CNN验证准确性和损失函数的行为怪异

  14. 14

    CNN准确性与损失选择

  15. 15

    损失或准确性没有变化

  16. 16

    训练模型字符识别的准确性并未提高

  17. 17

    提高缩小图像的准确性

  18. 18

    辍学层将提高准确性

  19. 19

    随机森林提高准确性

  20. 20

    提高QR码读取的准确性

  21. 21

    训练CNN后准确性低

  22. 22

    为什么将官方Keras mnist示例的非常简单的移植到tensorflow 2.x会导致准确性大幅下降?

  23. 23

    比较模型之间的AUC,对数损失和准确性得分

  24. 24

    为什么并行化会如此大幅度地降低性能?

  25. 25

    为什么并行化会如此大幅度地降低性能?

  26. 26

    为什么我的损失和准确性图有些不稳定?

  27. 27

    Tensorflow二进制分类训练的损失不会减少,准确性会保持在50%左右

  28. 28

    为什么数据增强不能提高CNN中纹理分类的准确性?

  29. 29

    如何在深度学习中提高准确性和验证准确性

热门标签

归档