sid*_*t28 12 python deep-learning keras tensorflow
我使用的训练深层神经网络ImageDataGenerator
,并flow_from_directory
在Keras。数据在一个文件夹中。因此,我在validation_split=0.x
使用ImageDataGenerator
. 然后我创建了两个流程,一个用于训练,另一个用于分别使用flow_from_directory
withsubset="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,...)
Run Code Online (Sandbox Code Playgroud)
对训练集和验证集使用 ImageDataGenerator 和 flow_from_directory 也将增强验证数据。Keras 文档中对此进行了说明,其中在图像生成器方法 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)
Run Code Online (Sandbox Code Playgroud)
注意:在这种情况下,您也可以直接传递重新缩放的验证数据,而不使用生成器,例如:
validation_data=(x_valid, y_valid)
归档时间: |
|
查看次数: |
4232 次 |
最近记录: |