【问题标题】:Data augmentation in cross-validation交叉验证中的数据增强
【发布时间】:2019-03-13 13:57:16
【问题描述】:

我是否正确理解对象分类任务中的数据增强只能在训练集上进行?

如果是这样,您如何使用增强数据实现 10 折交叉验证?每次测试折叠更改(即 10 次)时是否都会创建增强数据?

额外问题:你能引导我找到一个资源,展示如何在 Tensorflow 中执行此操作吗?

【问题讨论】:

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


    【解决方案1】:

    是的,你的理解是正确的。 验证数据可让您了解您的模型在实际未见示例中的行为方式,例如测试数据。所以你应该保持真实而不是通过增强来破坏它。

    现在进行 10 倍交叉验证:工程考虑开始了。进行增强的计算成本是否很高?也许您可以预先计算增强数据,然后选择原始+增强数据进行训练,选择原始数据进行验证。您是否想要浪费大量的增强数据和/或增强是否容易?即时执行,可能作为从数据集中获取样本的一部分。

    我无法帮助您解决 TF 奖金问题,但 there is a nice example 将东西放在 PyTorch 中。

    【讨论】:

    • 谢谢,我已接受您的回答。我想我会在运行交叉验证并强制模型只选择原始图像进行测试之前尝试创建增强图像。数据集并不大(23 个类中的每个类 35 个图像),我只看简单的 90 度旋转。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-08
      • 2018-06-10
      • 2017-03-15
      • 1970-01-01
      • 2018-08-06
      • 2017-07-15
      • 1970-01-01
      • 2023-04-05
      相关资源
      最近更新 更多