我正在尝试通过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)
您的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)
它会起作用。