首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KeyError:'val_acc‘

KeyError:'val_acc‘
EN

Stack Overflow用户
提问于 2019-09-28 01:17:44
回答 2查看 1.1K关注 0票数 2

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

代码语言:javascript
复制
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函数(它使用上面的回调参数):

代码语言:javascript
复制
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)

我得到的错误是:

代码语言:javascript
复制
KeyError: 'val_acc'

据我所知,这意味着val_acc不在列表中。但它是..。所以我需要帮助来理解为什么我会得到这个错误。

编辑:

错误前的结果图片显示..[https://i.stack.imgur.com/5lheg.png]

EN

回答 2

Stack Overflow用户

发布于 2020-10-14 23:16:36

您需要将monitor= 'val_acc'更改为monitor='val_loss'

代码语言:javascript
复制
checkpoint = ModelCheckpoint(
        model_file, 
        monitor='val_loss', 
        save_best_only=True)
票数 3
EN

Stack Overflow用户

发布于 2021-08-24 08:26:00

确保您使用的是model.compile(metrics=['accuracy']),而不是Accuracyacc。同样在文件路径中使用val_accuracy。我最近就遇到过这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58138947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档