如何在训练后获取分数和准确率

5
model.fit(X_train, y_train, batch_size = batch_size,
     nb_epoch = 4, validation_data = (X_test, y_test),
     show_accuracy = True)    
score = model.evaluate(X_test, y_test, 
     batch_size = batch_size, show_accuracy = True, verbose=0)

该函数返回标量输出,因此以下代码不起作用。

print("Test score", score[0])
print("Test accuracy:", score[1])

我得到的输出是: 训练样本数为20000,验证样本数为5000。
Epoch 1/4

20000/20000 [==============================] - 352s - loss: 0.4515 - val_loss: 0.4232

Epoch 2/4

20000/20000 [==============================] - 381s - loss: 0.2592 - val_loss: 0.3723

 Epoch 3/4

 20000/20000 [==============================] - 374s - loss: 0.1513 - val_loss: 0.4329

 Epoch 4/4

 20000/20000 [==============================] - 380s - loss: 0.0838 - val_loss: 0.5044

Keras版本1.0

我该如何获得准确度呢?请帮忙。


测试分数是什么意思?是指测试损失吗? - Marcin Możejko
你能打印出 history.history.keys() 吗? - Marcin Możejko
密钥是损失和val_loss。 - joydeep bhattacharjee
尝试将 metrics = ["accuracy"] 添加到 fit 参数中。 - Marcin Możejko
2个回答

4
如果您使用的是Sequential模型,您可以尝试以下代码(代码已更新):
nb_epochs = 4
history = model.fit(X_train, y_train, batch_size = batch_size,
 nb_epoch = nb_epochs, validation_data = (X_test, y_test),
 show_accuracy = True)

print("Test score", history.history["val_loss"][nb_epochs - 1])
print("Test acc", history.history["val_acc"][nb_epochs - 1])

谢谢Marcin,但是我的模型没有生成任何val_acc字段,正如model.fit的输出所示。我猜测show_accuracy = True参数在我的情况下不起作用。 - joydeep bhattacharjee
你能打印一下你的历史记录字典有哪些字段吗(例如通过打印)?你使用Sequential模型吗?你有哪个版本的Keras? - Marcin Możejko
我使用顺序模型。 - joydeep bhattacharjee
这里出现了错误:Received unknown keyword arguments: {'metrics': ['accuracy']}。我在源代码(https://github.com/fchollet/keras/blob/master/keras/legacy/models.py)中进行了检查,callbacks 参数似乎是最安全的选择。明天我会尝试这部分内容。感谢你的帮助,Marcin。再见! - joydeep bhattacharjee
1
是的 - 我找到了我的错误 - 你应该在编译参数中添加 metrics = ["accuracy"]。 - Marcin Możejko

3
感谢Marcin,你是正确的。
代码需要像这样:
model.compile(loss='binary_crossentropy',
          optimizer = 'adam',
          metrics=["accuracy"])

在model.fit中,show_accuracy没有任何意义,需要从中删除。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接