Tensorflow 验证数据的用途是什么?

Tensorflow 验证数据的用途是什么?,tensorflow,Tensorflow,我遵循本教程构建分类器: 在守则的这部分: # loading up our datasets train_data_dir = ‘data/train’ validation_data_dir = ‘data/validation’ test_data_dir = ‘data/test 我了解列车数据的用途,测试数据的用途,但我无法理解验证数据的用途。。。我在谷歌上搜索了一下,发现了这个教程: 但我更困惑了。下面这句话是什么意思 验证数据集:用于在调整模型超参数时对训练数据集上的模型拟合

我遵循本教程构建分类器: 在守则的这部分:

# loading up our datasets
train_data_dir = ‘data/train’ 
validation_data_dir = ‘data/validation’ 
test_data_dir = ‘data/test
我了解列车数据的用途,测试数据的用途,但我无法理解验证数据的用途。。。我在谷歌上搜索了一下,发现了这个教程: 但我更困惑了。下面这句话是什么意思

验证数据集:用于在调整模型超参数时对训练数据集上的模型拟合进行无偏评估的数据样本。当验证数据集上的技能被纳入模型配置时,评估变得更加偏颇


验证数据的目的是什么?

这个想法是为了避免过度拟合,或者换言之,更多地了解特定示例而不是一般特征。如果你只是在训练数据上测试你的模型,它可以很容易地学习(比如说)1000张你想与100张狗图片区分的猫图片,通过“记忆”这100张图片,CNN可以很容易地在其重量中拥有相当于100张图片的记忆量。显然,这并不是需要记忆的全部图片,而只是区分那些猫图片和狗图片的东西。这可以在模型中自由参数的数量与训练集中的信息量竞争的任何时候发生。为了避免这种情况,测试应该在另一组数据上进行,即验证集。但同样的事情也可能发生在验证集上!如果将网络设置为最小化验证集上的错误,那么它将这样做,因此验证集本身可能会变得过拟合。因此,第三个测试用于最终评估(原则上仅使用一次,以避免再次过度拟合此数据等)

验证数据集用于衡量模型在应用于以前从未见过的新数据时的泛化程度。以一位数学老师为例,他正在教小学生算术。理想情况下,期末考试应该有与家庭作业中给出的问题相同的问题,但这些问题都是新的问题,其中的数字不同,以确保教师能够评估学生是否真正学会了加法、减法、乘法,对之前在指定的作业中看到的问题,将答案分成两半,而不是简单地重复记忆。换句话说,保留一个单独的验证数据集的目的是避免将模型过度拟合到训练集,该数据集由训练模型中未使用的数据组成