2017-04-24 76 views
2

使用Keras库实施的神经网络和以下的训练时的结果。最后,它打印测试分数和测试准确度。我无法弄清楚分数究竟代表什么,但我认为运行测试时预测的数量是正确的。当使用Keras评估模型时测试分数与测试准确度

Epoch 1/15 1200/1200 [==============================] - 4s - loss: 0.6815 - ACC:0.5550 - val_loss:0.6120 - val_acc:0.7525

大纪元2/15 1200/1200 [======================== ======] - 3 - 损失: 0.5481 - ACC:0.7250 - val_loss:0.4645 - val_acc:0.8025

大纪元3/15 1200/1200 [============ ==================] - 3s - loss: 0.5078 - acc:0.7558 - val_loss:0.4354 - val_acc:0.7975

Epoch 4/15 1200/1200 [==============================] - 3s - 损失: 0.4603 - acc: 0.7875 - val_loss:0.3978 - val_acc:0.8350

Epoch 5/15 1200/1200 [============================= =] - 3s - 损失: 0.4367 - acc:0.7992 - val_loss:0.3809 - val_acc:0.8300

Epoch 6/15 1200/1200 [================= =============] - 3s - 损失: 0.4276 - acc:0.8017 - val_loss:0.3884 - val_acc:0.8350

Epoch 7/15 1200/1200 [===== =========================] - 3s - 损失: 0.3975 - acc:0.8167 - val_loss:0.3666 - val_ac c:0.8400

Epoch 8/15 1200/1200 [==============================] - 3s - loss : 0.3916 - acc:0.8183 - val_loss:0.3753 - val_acc:0.8450

Epoch 9/15 1200/1200 [======================= =======] - 3s - 损失: 0.3814 - acc:0.8233 - val_loss:0.3505 - val_acc:0.8475

Epoch 10/15 1200/1200 [=========== ===================] - 3s - loss: 0.3842 - acc:0.8342 - val_loss:0.3672 - val_acc:0.8450

Epoch 11/15 1200/1200 [======= =======================] - 3s - loss: 0.3674 - acc:0.8375 - val_loss:0.3383 - val_acc:0.8525

Epoch 12/15 1200/1200 [==============================] - 3s - 损失: 0.3624 - acc:0.8367 - val_loss: 0.3423 - val_acc:0.8650

Epoch 13/15 1200/1200 [==============================] - 3s - 损失: 0.3497 - acc:0.8475 - val_loss:0.3069 - val_acc:0.8825

Epoch 14/15 1200/1200 [===================== =========] - 3s - 损失: 0.3406 - acc:0.8500 - val_loss:0.2993 - val_acc:0.8775

Epoch 15/15 1200/1200 [==============================] - 3s - 损失: 0.3252 - acc:0.8600 - val_loss:0.2960 - val_acc:0。8775

400分之400[==============================] - 0

测试得分:0.299598811865

测试精度:0.88

望着Keras documentation,我还是不明白是什么成绩。对于评估函数,它说:

返回测试模式下模型的损失值&度量值。

我注意到的一件事是,当测试的准确性越低,得分越高,而准确性越高,得分越低。

+0

什么是你的keras版本,你可以提供的代码? – maz

+0

@maz我使用的是Keras 2.0.3,我正在试验的代码是这样的:https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py –

回答

4

作为参考,代码

model.compile(loss='binary_crossentropy', 
       optimizer='adam', 
       metrics=['accuracy']) 

score, acc = model.evaluate(x_test, y_test, 
          batch_size=batch_size) 
print('Test score:', score) 
print('Test accuracy:', acc) 

得分的两个相关部件是对于给定输入的损失函数的评估。

训练一个网络是找到最小化损失函数(或成本函数)的参数。

这里的成本函数是binary_crossentropy。

对于目标T和一个网络输出O,该二进制crossentropy可以定义为

F(T,0)= - (T *日志(O)+(1-T)*日志(1- O))

所以你看到的分数就是对它的评价。

如果你给它一批投入,它很可能会返回平均损失。

所以是的,如果你的模型具有更低的损耗(在测试时),应该经常有更低的预测误差。

0

在训练过程中经常会使用损失来查找模型的“最佳”参数值(例如神经网络中的权重)。这是你试图通过更新权重来优化训练。

从应用角度来看准确度更高。一旦找到上述优化参数,您就可以使用这些指标来评估您的模型预测与真实数据的准确度。

这个答案提供了详细信息:

How to interpret "loss" and "accuracy" for a machine learning model