我正在使用Tensorflow RNN来预测一堆序列。我使用Grucell和dynamic_rnn。在培训时,我输入了训练数据集,我将其分为8
个批次,每个批次的批量大小为10
(1个批次的形状为[10, 6, 2]
,即[batchsize, seqlen, dim]
)。为了防止过度拟合,我在训练数据集中的预测率开始超过80%时停止训练(通常在80%~83%的准确率下停止)。
训练之后,我让相同的图表只预测(不训练)相同的训练数据集。但这次,由于tf.nn.dynamic_rnn可以提供可变大小的批量,我可以将数据集定制为80
批次,每批次的批量大小为1
,形状为{{1 (简单地降低了批量大小,因此增加了批次数)。然后,准确度通常超过90%,这明显高于80%。出于某种原因,缩小批量大小会导致更高的准确率。为什么会这样?
答案 0 :(得分:0)
据我了解,您的训练数据量较少,而且您在训练期间也提早停止,如果差异越来越大,则意味着您的模型开始过度拟合,请不要盲目停止处理过度拟合检查您的训练和验证损失差异。在训练检查之前,您的数据集是偏向的还是正确平衡的。我认为这种情况正在发生,因为您的训练数据非常少,或者您的数据集不均衡。