Я использую трансферное обучение для семантической сегментации (чтобы найти только один класс). У меня есть набор данных из 50 изображений. Я хочу увеличить размер набора данных путем увеличения данных и обучить свою модель всем данным (оригинал + расширенный вариант).
Я использую ImageDataGenerator
класс и 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/.