2017-04-24 448 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