【发布时间】:2019-03-13 13:57:16
【问题描述】:
我是否正确理解对象分类任务中的数据增强只能在训练集上进行?
如果是这样,您如何使用增强数据实现 10 折交叉验证?每次测试折叠更改(即 10 次)时是否都会创建增强数据?
额外问题:你能引导我找到一个资源,展示如何在 Tensorflow 中执行此操作吗?
【问题讨论】:
标签: deep-learning conv-neural-network cross-validation data-augmentation
我是否正确理解对象分类任务中的数据增强只能在训练集上进行?
如果是这样,您如何使用增强数据实现 10 折交叉验证?每次测试折叠更改(即 10 次)时是否都会创建增强数据?
额外问题:你能引导我找到一个资源,展示如何在 Tensorflow 中执行此操作吗?
【问题讨论】:
标签: deep-learning conv-neural-network cross-validation data-augmentation
是的,你的理解是正确的。 验证数据可让您了解您的模型在实际未见示例中的行为方式,例如测试数据。所以你应该保持真实而不是通过增强来破坏它。
现在进行 10 倍交叉验证:工程考虑开始了。进行增强的计算成本是否很高?也许您可以预先计算增强数据,然后选择原始+增强数据进行训练,选择原始数据进行验证。您是否想要浪费大量的增强数据和/或增强是否容易?即时执行,可能作为从数据集中获取样本的一部分。
我无法帮助您解决 TF 奖金问题,但 there is a nice example 将东西放在 PyTorch 中。
【讨论】:
数据增强通常是为了帮助我们的模型更好地概括测试/现实世界的数据。对于许多实际应用,数据分为训练/有效/测试。数据可以在训练和有效数据集中进行扩充。在测试集中进行数据扩充是没有意义的。
对于交叉验证,请检查 sklearn 库中的 kfold 函数,该函数可对 numpy 数组进行操作。你可以直接在 tensorflow 的 model.fit() 中使用它们的返回值
【讨论】: