培训减少,验证 - 增加。培训损失,验证损失减少

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了培训减少,验证 - 增加。培训损失,验证损失减少相关的知识,希望对你有一定的参考价值。

我正在努力实施LRCN但我在培训方面面临障碍。目前,我正在尝试单独训练CNN模块,然后将其连接到RNN。您在下面看到的结果在某种程度上是我迄今为止取得的最好成绩。问题在于除了训练准确性之外,一切似乎都很顺利。它正在逐渐下降。

我的模型在FC层之间存在激进的辍学,所以这可能是一个原因,但是,你认为这些结果有什么问题吗?如果他们继续这个趋势,我应该改变什么呢?

要预测的数字类是3.代码是用Keras编写的。

Epoch 1/20 16602/16602 [==============================] - 2430s 146ms /步 - 损失:1.2583 - acc :0.3391 - val_loss:1.1373 - val_acc:0.3306

Epoch 00001:val_acc从-inf改为0.33058,将模型保存为权重0.01-1.14.hdf5 Epoch 2/20 16602/16602 [===================== =========] - 2441s 147ms /步 - 损失:1.1998 - acc:0.3356 - val_loss:1.1342 - val_acc:0.3719

Epoch 00002:val_acc从0.33058提高到0.37190,将模型保存为权重0.02-1.13.hdf5 Epoch 3/20 8123/16602 [=============> ........ ........] - ETA:20:30-损失:1.1889 - acc:0.3325

我还有两个简短的问题,我暂时无法回答。

  1. 为什么从我的自定义视频数据生成器输出的张量是尺寸:(4, 288, 224, 1)但我的输入形状的层是生成为(None, 288, 224, 1)?为了澄清形状,我将4个批次包含单个图像分类到非时间分布的CNN中。我使用功能API。
  2. 后来,当我训练RNN时,我将不得不按时间步进行预测,然后将它们平均并选择最佳的一个作为我整体模型预测的预测。指标['准确度']是否这样做,或者我需要自定义指标函数?如果是后者,我如何根据以下内容编写一个:Keras doc. the results from evaluating a metric are not used when training the model。为此目的,我是否需要自定义目标(丢失)功能?

任何帮助,专业知识将受到高度赞赏,我真的需要它。先感谢您!

答案

只要损失不断下降,准确性最终应该开始增长。既然你只训练了2-3个时代,我会说精确度可能会波动是正常的。

至于你的其他问题:

  1. 层的输入形状的概念是(batchSize, dim1, dim2, nChannels)。由于您的模型在训练之前不知道批量大小,因此将None用作一种占位符。图像尺寸似乎是正确的,一个通道中的一个意味着您不使用彩色图像,因此每个像素只有一个条目。
  2. 我认为准确度指标应该没问题,但是我没有使用RNN的经验,所以也许其他人可以回答这个问题。

以上是关于培训减少,验证 - 增加。培训损失,验证损失减少的主要内容,如果未能解决你的问题,请参考以下文章

验证损失减少,然后增加,然后再次减少

验证损失不断减少,而训练损失在 3 个 epoch 后开始增加

具有正弦波形的验证损失

验证损失达到最小值然后增加

CNN分类中验证损失减少,验证准确率下降

如何解释损失和准确性的增加