如何查找ImageDataGenerator生成的图像数量

时间:2017-12-28 07:56:04

标签: deep-learning keras

您好我想问你一个关于Keras ImageDataGenerator的问题。我可以确定将创建多少个增强图像吗?或者如何在增强后找到训练图像集大小。在Keras文档中,流函数描述是:“采用numpy数据和标签数组,并生成批量的增广/规范化数据。无限循环地产生无限批次。”但是生成了多少图像?

例如以下代码生成了多少图像?无限?

from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
from matplotlib import pyplot
import numpy as np

datagen = ImageDataGenerator(
        rotation_range=40,
        width_shift_range=0.2,
        height_shift_range=0.2,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True,
        fill_mode='nearest')
img=load_img('cat.1.jpg')
x=img_to_array(img)
x = x.reshape((1,) + x.shape) 
print x.shape
h=datagen.flow(x)

1 个答案:

答案 0 :(得分:1)

您所说的是正确的,您可以从一张图像生成无限个数字。实际上,这是正常现象,仅考虑可通过初始旋转生成的图像数量是无限的,因为对于每个旋转角度值,您都可以生成不同的图像。为了确认这一点,我将显示keras documentation

中的代码
for e in range(epochs):
    print('Epoch', e)
    batches = 0
    for x_batch, y_batch in datagen.flow(x_train, y_train, batch_size=32):
        model.fit(x_batch, y_batch)
        batches += 1
        if batches >= len(x_train) / 32:
            # we need to break the loop by hand because
            # the generator loops indefinitely
            break

请注意,他们说的是生成器无限循环,这确认生成了无限数量的图像