train 是训练集, val (validation的简称)是训练过程中的测试集,是为了让你在边训练边看到训练的结果,及时判断学习状态。 test 是训练模型结束后,用于评价模型结果的测试集。 其中,只有train是需要训练的,val和test不是必须的。一般的,val的数据集和train没有交集,所以这部分数据对最终训练出的模型没有贡献,其主要作用是来验证是否过拟合、以及用来调节训练参数等。 例:
训练0-5000次迭代过程中,train和val的loss都是不断降低, 但是从5000-10000过程中train loss不断降低,validation的loss不降反升。 那么就证明继续训练下去,模型只是对train dataset这部分拟合的特别好,但是泛化能力很差。 所以与其选取10000次的结果,不如选择5000次的结果。
参考:
https://www.mobibrw.com/2017/7966https://www.cnblogs.com/JZ-Ser/p/7118053.html