我一直在尝试使用 Keras 训练 CNN,并将数据增强应用于一系列图像及其分割掩码。在线示例说为了做到这一点,我应该使用 flow_from_directory() 创建两个单独的生成器,然后压缩它们。
但是,我可以只为图像和蒙版使用两个 numpy 数组,使用 flow() 函数,而是这样做:
# Create image generator
data_gen_args = dict(rotation_range=5,
width_shift_range=0.1,
height_shift_range=0.1,
validation_split=0.2)
image_datagen = ImageDataGenerator(**data_gen_args)
seed = 1
# Create training and validation generators including masks
train_generator = image_datagen.flow(images, masks, seed=seed, subset='training')
val_train_generator = image_datagen.flow(images, masks, seed=seed, subset='validation')
# Train model
model.fit_generator(train_generator, steps_per_epoch=50,
validation_data = val_train_generator,
validation_steps = 10, shuffle=True, epochs=20)
Run Code Online (Sandbox Code Playgroud)
如果没有,为什么不呢?似乎如果我运行生成器,我只能输出图像而不能输出蒙版,所以我担心它没有做我想要的。