gpt4 book ai didi

python - 使用 ImageDataGenerator 和 flow_from_directory 时,Keras 中的数据增强是否应用于验证集

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:28 24 4
gpt4 key购买 nike

我正在 Keras 中使用 ImageDataGeneratorflow_from_directory 训练深度神经网络。数据在一个文件夹中。因此,在使用 ImageDataGenerator 创建生成器时,我使用了 validation_split=0.x。然后我创建了两个流,一个用于训练,一个用于验证,分别使用 flow_from_directorysubset="training"subset="validation"

我想知道在创建 ImageDataGenerator 时是否将任何指定的图像增强(转换)应用于训练和验证子集或仅应用于训练子集。

我在 GitHub 的 Keras 存储库中找不到合适的部分来检查它。

(注意:我知道使用两个单独的生成器使用两个单独的目录进行训练和验证是更好的做法)

代码示例:

img_gen = ImageDataGenerator(validation_split=0.2,horizontal_flip = True, vertical_flip = True,...)
train_flow = img_gen.flow_from_directory('directory',subset = "training",...)
validation_flow = img_gen.flow_from_directory('directory',subset = "validation",...)
history=model.fit_generator(generator = train_flow ,validation_data = validation_flow,...)

最佳答案

将 ImageDataGenerator 和 flow_from_directory 用于训练集和验证集,也将增加验证数据。这显示在 Keras documentation 中。 ,在图像生成器方法 flow_from_directory 下说明:获取数据和标签数组,生成成批的增强数据。如果你不想在验证集上使用数据扩充,你可以看看提供的例子:

train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)

validation_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
'data/train',
target_size=(150, 150),
batch_size=32,
class_mode='binary')

validation_generator = validation_datagen.flow_from_directory(
'data/validation',
target_size=(150, 150),
batch_size=32,
class_mode='binary')

model.fit_generator(
train_generator,
steps_per_epoch=2000,
epochs=50,
validation_data=validation_generator,
validation_steps=800)

注意:在这种情况下,您也可以直接传递重新缩放的验证数据,而无需使用生成器,例如:validation_data=(x_valid, y_valid)

关于python - 使用 ImageDataGenerator 和 flow_from_directory 时,Keras 中的数据增强是否应用于验证集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50737814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com