1.疑惑
不知道大家有没有这样的问题,我最开始接触深度学习,跑过很多项目,发现基本只有训练集和测试集,后来才发现还有验证集。
难道测试集不能调整超参数吗,而且在eval模式下,都冻结权重了,验证集和测试集有啥区别呢。
3.解答
直接说根本原因,测试集只能跑一次。
不用去思考测试集跑一次的原因,只要记住这是规定就行。
标准的深度学习模型的构建,必须要有训练集和测试集。在这个框架下每轮训练,我们评估模型用的都是训练集的数据,指标好坏只能靠最终的测试集来评定,但是我想在训练的时候就能看到类似于测试集评估的效果,方便调参,那就划出一个新的集合,作为代替测试集。
总结来说,训练集性能指标无法代表模型最终指标,测试集可以,但是测试集只能跑一次,我想调参,那就在划分数据集的时候,多划出一个数据集叫做验证集,每轮训练完后,评估验证集,看指标调参,训练好了之后,最后用测试集跑一遍作为模型最终的性能。