使用keras中的ImageDataGenerator类,数据集大小不会因图像增强而增加

时间:2019-05-27 11:33:37

标签: python keras data-augmentation

我正在使用转移学习进行语义分割(仅查找一个类)。我有50个图像的数据集。我想通过数据扩充来增加数据集的大小,并在所有数据(原始+扩充)上训练我的模型。

我为此使用了ImageDataGenerator类和keras中的fit_generator。但是,在训练期间,我的模型仅在50张图像上运行。

我认为正在发生的事情是我的模型仅在50个生成的图像上学习。

问题:是否可以增加生成的图像的数量并对其进行训练以及原始数据?

我的代码是这样的:

data_gen_args = dict(horizontal_flip=True,
                 vertical_flip=True,
                 rotation_range=90,
                 width_shift_range=0.1,
                 height_shift_range=0.1,
                 zoom_range=0.2,
                 validation_split=0.2)

image_datagen = ImageDataGenerator(**data_gen_args)
mask_datagen = ImageDataGenerator(**data_gen_args)
seed = 1

image_generator = image_datagen.flow(
                  train_X,
                  batch_size=2,
                  seed=seed)

mask_generator = mask_datagen.flow(
                 train_labels,
                 batch_size=2,
                 seed=seed)

train_generator = zip(image_generator, mask_generator)

history = model.fit_generator(train_generator, epochs =50 ,verbose = 1, 
                             steps_per_epoch=len(train_X)/2)

我改编了https://keras.io/preprocessing/image/中的代码。

0 个答案:

没有答案