KeyError:'val_acc'

问题描述 投票:0回答:1

下面是model.fit_generator()函数的一些参数。这些对象保存在标有回调的列表中。

checkpoint = ModelCheckpoint(
        model_file, 
        monitor= 'val_acc', 
        save_best_only=True)

early_stopping = EarlyStopping(
    monitor='val_loss',
    patience=5,
    verbose=1,
    restore_best_weights=True)


tensorboard = TensorBoard(
    log_dir=log_dir,
    batch_size=batch_size,
    update_freq = 'batch')


reduce_lr = ReduceLROnPlateau(
    monitor='val_loss',
    patience=5,
    cooldown=2,
    min_lr=0.0000000001,
    verbose=1)


#-----------------------------------------------------------------------------------------------------------------#
callbacks = [checkpoint, reduce_lr, early_stopping, tensorboard]

创建了回调对象和对象的参数后,我实现了层并进行了编译(未显示,因为它与我遇到的问题无关)。然后运行model.fit_generator函数(使用上面的回调参数):

history = model.fit_generator(
    train_generator,
    steps_per_epoch = steps_per_epoch,
    epochs=epochs,
    verbose=2,
    callbacks=callbacks,
    validation_data=validation_generator,
    validation_steps=validation_steps,
    class_weight=class_weight)

我得到的错误是:

KeyError: 'val_acc'

据我了解,这意味着val_acc不在列表中。但这是..因此需要帮助来了解为什么我会收到此错误。

python keras image-recognition
1个回答
0
投票

根据有关keras中回调的官方文档:

checkpoint = ModelCheckpoint(
    model_file, 
    monitor= 'val_acc', 
    save_best_only=True)

更改为:

checkpoint = ModelCheckpoint(
    model_file, 
    monitor= 'val_loss', 
    save_best_only=True)

供参考,请访问:https://keras.io/callbacks/

© www.soinside.com 2019 - 2024. All rights reserved.