如何从 ImageDataGenerator 获取历史记录 ['val_accuracy']

how to get history['val_accuracy'] from ImageDataGenerator

我正在使用 keras.preprocessing.image.ImageDataGenerator

当我把它喂给 model.fit 时那样

history = model.fit(
    train_data_gen,
    epochs=EPOCHS,
    steps_per_epoch=steps_per_epoch,
    validation_data=val_data_gen,
    validation_freq=validation_freq,
    callbacks=[EarlyStopping(monitor='val_accuracy', patience=2)]
)

它工作正常,但没有实际的验证数据,所以我的回调不起作用,以及绘图,因为 history.history['val_accuracy'] 根本不存在,我在这个字典中只有两个项目准确性和损失

所以我的主要问题是如何让它像那样工作

history = model.fit(
    x=train_data_gen,
    y=val_data_gen,
)

但是w/o

ValueError: `y` argument is not supported when using python generator as input.

问题出在 model.fit 个参数中

validation_freq=validation_freq 而不是 validation_steps=validation_freq

所以之后一切正常,val_accuracy 终于可以使用了

history = model.fit(
    x=train_data_gen,
    epochs=EPOCHS,
    steps_per_epoch=steps_per_epoch,
    validation_data=val_data_gen,
    validation_steps=validation_freq,
    callbacks=[
        EarlyStopping(monitor='val_accuracy', patience=2),
        ModelCheckpoint('models/m-{epoch:02d}-{val_accuracy:.4f}.h5')
    ],
).history