如何从keras的ImageDataGenerator调用验证数据

时间:2020-02-17 20:50:28

标签: python-3.x keras

我正在研究MNIST数据集,并决定尝试进行数据生成。现在直接:

我正在使用验证拆分生成数据,如下所示:

datagen = keras.preprocessing.image.ImageDataGenerator(... , validation_split=0.21, ...)

datagen.fit(train_x)

但是我不知道如何将这种验证拆分称为模型的拟合度

hist = model.fit_generator(datagen.flow(train_x, train_y, batch_size =32), 
                                steps_per_epoch=len(train_x)//32, 
                                epochs = 70, verbose=0, callbacks= [PlotLossesKeras()], 
                                validation_data= **???**, <-----
                                validation_steps=None, 
                                validation_freq=1, 
                                class_weight=None, 
                                max_queue_size=10, 
                                workers=1, 
                                use_multiprocessing=False, 
                                shuffle=True,
                                initial_epoch=0)

我在文档或其他地方都找不到答案。你能帮我吗?

1 个答案:

答案 0 :(得分:2)

您应说明您正在使用哪个子集:subset = 'validation',如Keras documentation所说:

子集:如果在ImageDataGenerator中设置了validate_split,则数据的子集(“训练”或“验证”)。

例如,您可以执行以下操作:

datagen = keras.preprocessing.image.ImageDataGenerator(..., validation_split=0.21)

train_generator = datagen.flow(..., subset='training')
valid_generator = datagen.flow(..., subset='validation')

hist = model.fit_generator(...,
        generator = train_generator,
        validation_data = valid_generator,
        steps_per_epoch = len(train_generator),
        validation_steps = len(valid_generator),
)

您还可以在ImageDataGenerator class documentation

之后看到Keras本身提供的一些示例。