交叉验证中的数据扩充

时间:2019-03-13 13:57:17

标签: deep-learning conv-neural-network cross-validation data-augmentation

我是否正确理解对象分类任务中的数据扩充仅应在训练集上进行?

如果是,您如何使用增强数据实施10倍交叉验证?每次测试倍数变化(即10次)时是否都会创建增强数据?

奖金问题:您能否将我引导至显示如何在Tensorflow中执行此操作的资源?

2 个答案:

答案 0 :(得分:1)

是的,您的理解是正确的。 验证数据可让您了解模型在未见的真实示例中的行为,例如测试数据。因此,您应该保持其真实性,而不要因扩充而损坏它。

现在进行10倍交叉验证:工程方面的考虑开始了。进行扩增是否在计算上昂贵?也许您可以预先计算扩充后的数据,并选择原始+增强的进行训练,而仅原始的进行验证。您是否要浪费大量的扩充数据和/或扩充是否容易?快速执行此操作,可能是从数据集中获取样本的一部分。

我无法帮助您解决TF奖金问题,但there is a nice example是将事情整合到PyTorch中。

答案 1 :(得分:0)

通常会进行数据扩充,以帮助我们的模型更好地推广测试/现实世界的数据。对于许多实际应用,数据分为训练/有效/测试。可以在训练和有效数据集中增加数据。在测试集中进行数据扩充毫无意义。

要进行交叉验证,请检查sklearn库中的kfold函数,该函数可对numpy数组进行操作。您可以直接在tensorflow的model.fit()中使用它们的返回值