我正在使用 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/