我正在使用转移学习进行语义分割(仅查找一个类)。我有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)