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