【问题标题】:How many images the DataAugmentation method adds in my dataset? (CNN KERAS)DataAugmentation 方法在我的数据集中添加了多少图像? (CNN 凯拉斯)
【发布时间】:2020-03-02 02:27:49
【问题描述】:

我在我的二进制 CNN 中执行了数据增强。在我的原始数据集中,我有 1400 张图像(每个类 700 张),所以,我的疑问是当我实现数据增强时(如下)该方法在我的数据集中添加了多少张图像?

datagen = ImageDataGenerator(
    rotation_range=30,
    zoom_range=0.15,
    featurewise_std_normalization=True,
    width_shift_range=0.2,
    height_shift_range=0.2,
    shear_range=0.15,
    horizontal_flip=True,
    fill_mode="nearest")

【问题讨论】:

    标签: python machine-learning image-processing keras conv-neural-network


    【解决方案1】:

    Keras ImageDataGenerator 不会添加图像到数据集,它只是根据需要随机修改数据集中的图像。每次你向它请求一个批次时,它都会从数据集中选择几个未修改的图像,然后对其进行修改。因为它执行随机修改,所以它可以对任何给定的原始图像进行近乎无限的变化。

    如果您有 1400 张图片,假设您获得了 90% 的验证准确率。如果你对它们进行增强,你可能会得到 93%。但是,请记住,增强并不是更大数据集的良好替代品。如果你再收集 1400 张图像,那么即使没有任何增强,你也可能获得 95%。发生这种情况是因为新图像是全新的,因此它们可能具有无法通过标准增强添加的功能。

    【讨论】:

    • 那么如果我的数据集中有 1400 张图像(执行 dataAugmentation)与有 20000 张图像相同吗? (示例)
    • @jed1 不,不太一样。当您拥有一个小数据集时,增强功能会有所帮助,但它们无法创建全新的图像。有关详细信息,请参阅我的编辑。
    • 很好的答案。我有一个包含 35000 张图像的数据集,但只有 700 张来自一个班级,其他来自另一个班级。我从更大的数据集中提取 700 张图像进行平衡并编写相关的增强。我的问题还有另一种选择吗?我做了正确的程序?
    • @jed1 处理不平衡的数据集是一个我没有经验的难题。从较大的班级中获取 700 并执行增强是一个不错的解决方案,如果您获得所需的准确性,它将工作得很好。但是,您可能可以使用更复杂的技术来获得更好的结果。不幸的是,我不知道这些技术。我建议阅读更多关于如何处理不平衡数据集的文章和/或论文。
    • @jed1 This 看起来不错。您现在所做的基本上是“4. 重采样技术 - 欠采样多数类”一节中描述的内容。很高兴能够提供帮助!
    猜你喜欢
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 2018-10-04
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多