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

问题描述 投票:-1回答:1

我正在努力实施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。为此目的,我是否需要自定义目标(丢失)功能?

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

python tensorflow machine-learning keras deep-learning
1个回答
1
投票

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

至于你的其他问题:

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