使用 ImageDataGenerator 时的 Keras 拆分训练测试集 [英] Keras split train test set when using ImageDataGenerator
问题描述
我有一个包含图像子文件夹(根据标签)的目录.我想在 Keras 中使用 ImageDataGenerator 时将此数据拆分为训练集和测试集.尽管 keras 中的 model.fit() 具有用于指定拆分的参数 validation_split,但我找不到与 model.fit_generator() 相同的参数.怎么做?
I have a single directory which contains sub-folders (according to labels) of images. I want to split this data into train and test set while using ImageDataGenerator in Keras. Although model.fit() in keras has argument validation_split for specifying the split, I could not find the same for model.fit_generator(). How to do it ?
train_datagen = ImageDataGenerator(rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
train_generator = train_datagen.flow_from_directory(
train_data_dir,
target_size=(img_width, img_height),
batch_size=32,
class_mode='binary')
model.fit_generator(
train_generator,
samples_per_epoch=nb_train_samples,
nb_epoch=nb_epoch,
validation_data=??,
nb_val_samples=nb_validation_samples)
我没有单独的验证数据目录,需要将其从训练数据中拆分
I don't have separate directory for validation data, need to split it from the training data
推荐答案
Keras 现在添加了使用 ImageDataGenerator 从单个目录拆分的训练/验证:
Keras has now added Train / validation split from a single directory using ImageDataGenerator:
train_datagen = ImageDataGenerator(rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
validation_split=0.2) # set validation split
train_generator = train_datagen.flow_from_directory(
train_data_dir,
target_size=(img_height, img_width),
batch_size=batch_size,
class_mode='binary',
subset='training') # set as training data
validation_generator = train_datagen.flow_from_directory(
train_data_dir, # same directory as training data
target_size=(img_height, img_width),
batch_size=batch_size,
class_mode='binary',
subset='validation') # set as validation data
model.fit_generator(
train_generator,
steps_per_epoch = train_generator.samples // batch_size,
validation_data = validation_generator,
validation_steps = validation_generator.samples // batch_size,
epochs = nb_epochs)
https://keras.io/preprocessing/image/
这篇关于使用 ImageDataGenerator 时的 Keras 拆分训练测试集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!