深度学习经常需要面临一个过拟合(overfitting)的问题:你的模型确实能很好地识别所训练的数据,不过不能泛化到它没有见过的例子。比如,它看到一个猫的图像后,除非所有其他猫图像都与这个图像非常相似,否则模型不会认为那是猫。为了防止这种问题的发生,所以我们就需要一个数据集来确保我们的网络没有问题。
这里再说一下数据集类型:
训练集
在训练过程中用来更新模型
验证集
用来评价模型在这个问题领域的泛化能力,而不是与训练数据拟合程度;不用来直接更新模型。
Test set
最后一个数据集,训练完成后对模型的性能提供最后的评价。
batch_size
理论上讲,我们可以把batch_size设置为测试和训练集中的图像数,使网络在更新之前会看到每一个图像。但在实际中,我们不会这样做,因为与存储数据集中每一个图像的所有相关信息相比,较小批量(mini-batches)需要的内存更少,而且更小的批量也会使训练速度更快,以便我们可以更快地更新网络。
Pytorch中数据加载器将batch_size默认设置为1。
如果有小伙伴还想要研究可以使用多大的小批量而不会耗尽GPU的内存。另外,还可以指定数据集如何采样,每次运行时是否将整个数据集打乱,另外从数据集取数据需要使用多少个进程。这些内容可以在Pytorch文档中都可以找到,这里给出链接:https://oreil.ly/XORsl
注:文章摘选自《基于Pytorch的深度学习》Ian Pointer著
建立深度学习验证和测试数据集
最新推荐文章于 2025-04-28 09:23:14 发布