generator - 如何确定 Keras 中增强图像的数量?

标签 generator keras image-preprocessing

我正在使用 Keras 2.0.0,我想在 GPU 上训练一个具有大量参数的深度模型。
由于我的数据很大,我必须使用 ImageDataGenerator 。老实说,我想在这个意义上滥用 ImageDataGenerator,我不想执行任何增强。我只想将我的训练图像分批(并重新调整它们),这样我就可以将它们提供给 model.fit_generator

我改编了 here 的代码,并根据我的数据做了一些小的更改(即将二进制分类更改为分类。但这对于这个应该在这里讨论的问题无关紧要)。
我有 15000 张训练图像,我想要执行的唯一“增强”是通过 train_datagen = ImageDataGenerator(rescale=1./255) 重新缩放到范围 [0,1] 。
创建我的 'train_generator' 后:

train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(img_width, img_height),
    batch_size=batch_size,
    class_mode='categorical',
    shuffle = True,
    seed = 1337,
    save_to_dir = save_data_dir)

我使用 model.fit_generator() 拟合模型。

我将纪元数量设置为:epochs = 1和 batch_size 为:batch_size = 60
我希望在存储增强(即调整大小)图像的目录中看到什么:每个时期 15.000 个重新缩放的图像,即只有一个时期:15.000 个重新缩放的图像。但是,神秘的是,有 15.250 张图像。

有这么多图像的原因吗?
我是否有权控制增强图像的数量?

类似问题:

Model fit_generator not pulling data samples as expected (分别在 stackoverflow: Keras - How are batches and epochs used in fit_generator()? )

A concrete example for using data generator for large datasets such as ImageNet

我感谢您的帮助。

最佳答案

如果您的要求是在训练时流动数据,以下链接对您很有用,作者在其中编写和解释了 imageDataGenerator 的脚本非常好。您可以向其添加更多功能,例如重新缩放和其他完全控制数据生成的功能。

https://stanford.edu/~shervine/blog/keras-how-to-generate-data-on-the-fly

关于generator - 如何确定 Keras 中增强图像的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43604998/

相关文章:

c++ - QR 码生成器的 Reed-Solomon 算法

javascript - 这个生成器如何返回 3?

python - 如何以 Python 方式从列表中生成所有值?

python - 在OpenCV中删除图像中的噪声而不会丢失数据

python - 生成器可以在 python 中与 string.format 一起使用吗?

python - 为 keras 模型编写和测试自定义损失或度量函数

python - 属性错误:模块 'resnet' 没有属性 'ResnetBuilder'

tensorflow - Keras 中自定义层的训练和测试标志

machine-learning - 用于机器学习的 Python 中的 ZCA 白化

python - 如何使用 python 从图像中去除边界边缘噪声?