训练模型时出现错误提醒:KeyError: ‘val_acc‘该怎么解决

运行代码时报错的问题是:KeyError: 'val_acc'

在用keras训练深度神经网络模型的时候出现如下问题的原因:

 File "D:\anaconda\lib\site-packages\tensorflow\python\keras\callbacks.py", line 1330, in _get_file_path
    file_path = self.filepath.format(epoch=epoch + 1, **logs)
KeyError: 'val_acc'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:/Emotion Recognition/train_emotion_classifier.py", line 70, in <module>
    model.fit_generator(data_generator.flow(xtrain, ytrain, batch_size),
  File "D:\anaconda\lib\site-packages\tensorflow\python\util\deprecation.py", line 324, in new_func
    return func(*args, **kwargs)
  File "D:\anaconda\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1815, in fit_generator
    return self.fit(
  File "D:\anaconda\lib\site-packages\tensorflow\python\keras\engine\training.py", line 108, in _method_wrapper
    return method(self, *args, **kwargs)
  File "D:\anaconda\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1137, in fit
    callbacks.on_epoch_end(epoch, epoch_logs)
  File "D:\anaconda\lib\site-packages\tensorflow\python\keras\callbacks.py", line 412, in on_epoch_end
    callback.on_epoch_end(epoch, logs)
  File "D:\anaconda\lib\site-packages\tensorflow\python\keras\callbacks.py", line 1249, in on_epoch_end
    self._save_model(epoch=epoch, logs=logs)
  File "D:\anaconda\lib\site-packages\tensorflow\python\keras\callbacks.py", line 1282, in _save_model
    filepath = self._get_file_path(epoch, logs)
  File "D:\anaconda\lib\site-packages\tensorflow\python\keras\callbacks.py", line 1332, in _get_file_path
    raise KeyError('Failed to format this callback filepath: "{}". '
KeyError: 'Failed to format this callback filepath: "models/_mini_XCEPTION.{epoch:02d}-{val_acc:.2f}.hdf5". Reason: \'val_acc\''

解决方案:修改参数 

base_path = 'models/'  
trained_models_path = base_path + '_mini_XCEPTION'
model_names = trained_models_path + '.{epoch:02d}-{val_acc:.2f}.hdf5'
model_checkpoint = ModelCheckpoint(model_names,               
                                   'val_loss', verbose=1,
                                   save_best_only=True)  

把上面代码中的'.{epoch:02d}-{val_acc:.2f}.hdf5'改成'.{epoch:02d}-accuracy{accuracy:.2f}.hdf5'即可解决问题。

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

越努力越幸运@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值