卷积神经网络-Keras-val_acc Keyerror'acc'

Shi*_*tel 5 python keras

我正在尝试通过Theano实施CNN。我使用了Keras库。我的数据集是55个字母图像(28x28)。

在最后一部分中,我得到此错误: 在此处输入图片说明

train_acc=hist.history['acc']
KeyError: 'acc'
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激。谢谢。

这是我的代码的一部分:

train_acc=hist.history['acc']
KeyError: 'acc'
Run Code Online (Sandbox Code Playgroud)

Pe *_*Dro 24

在不太常见的情况下(正如我在一些 tensorflow 更新后所预期的那样),尽管在模型定义中选择了metrics=["accuracy"],但我仍然遇到相同的错误。

解决方案是:将metrics=["acc"]替换为metrics=["accuracy"] 无处不在。就我而言,我无法绘制训练历史的参数。我不得不更换

acc = history.history['acc']
val_acc = history.history['val_acc']

loss = history.history['loss']
val_loss = history.history['val_loss']
Run Code Online (Sandbox Code Playgroud)

acc = history.history['accuracy']
val_acc = history.history['val_accuracy']

loss = history.history['loss']
val_loss = history.history['val_loss']
Run Code Online (Sandbox Code Playgroud)


Qin*_*ang 8

您的log变量将与metrics编译模型时的一致。

例如,下面的代码

model.compile(loss="mean_squared_error", optimizer=optimizer) 
model.fit_generator(gen,epochs=50,callbacks=ModelCheckpoint("model_{acc}.hdf5")])
Run Code Online (Sandbox Code Playgroud)

会给出一个KeyError: 'acc'因为你没有设置metrics=["accuracy"]model.compile

当指标不匹配时也会发生此错误。例如

model.compile(loss="mean_squared_error",optimizer=optimizer, metrics="binary_accuracy"]) 
model.fit_generator(gen,epochs=50,callbacks=ModelCheckpoint("model_{acc}.hdf5")])
Run Code Online (Sandbox Code Playgroud)

仍然给出一个,KeyError: 'acc'因为您设置了一个binary_accuracy指标但accuracy稍后要求。

如果你把上面的代码改成

model.compile(loss="mean_squared_error",optimizer=optimizer, metrics="binary_accuracy"]) 
model.fit_generator(gen,epochs=50,callbacks=ModelCheckpoint("model_{binary_accuracy}.hdf5")])
Run Code Online (Sandbox Code Playgroud)

它会起作用。


Soh*_*rab 6

您可以使用它print(history.history.keys())来找出您拥有的指标以及它们的名称。就我而言,它也被称为"accuracy",而不是"acc"