我使用的是Python结合Keras和Tensorflow(GPU版本)。
我训练了一个卷积神经网络用于图像分类任务。当我训练网络时,训练数据上的损失函数结果如下:
在第一个周期之前:1.099
第一个周期之后:1.094
第二个周期之后:0.899
第三个周期之后:0.713
第四个周期之后:0.620722375
第五个周期之后:0.532505135
为什么损失函数的下降从第二个周期开始?为什么第一个周期之后没有下降?
提前感谢。
回答:
Keras在训练过程中计算训练数据上的损失。因此,在第一个周期,起始样本的表现非常差(因为模型尚未训练),随着训练的进行,模型实际上会变得更好,但由于起始样本的损失较差,总体损失看起来较差。
顺便提一下,你可以检查验证损失
,它是在每个周期之后计算的,这将是真实损失的一个更好的指标。