我有一个带有Dropout层的模型(p = 0.6)。我最终以.eval()
模式训练模型,然后再次以.train()
模式训练模型,我发现训练.eval()
模式为我提供了更好的准确性和更快的训练数据减少量,< / p>
train()
:火车损耗:0.832,验证损耗:0.821
eval()
:火车损耗:0.323,验证损耗:0.251
为什么会这样?
答案 0 :(得分:-2)
这似乎是一种简单的模型架构,并且在训练模式下,无法捕获数据中的特征,因此拟合不足。
eval()
在其他模块中禁用退出和批处理规范化。
这意味着该模型可以更好地训练,而不会出现辍学现象,从而可以帮助更多的神经元更好地学习模型,还可以增加图层大小,增加图层数,降低辍学概率。