2017-08-29 163 views
2

Caffe不僅可以打印整體精度,還可以打印每類精度。如何輸出Keras中的每類精度?

在Keras日誌中,只有總體準確度。我很難計算單獨的班級準確度。

大紀元二百分之一百六十八

0 - 損失:0.0495 - ACC:0.9818 - val_loss:0.0519 - val_acc:0.9796

大紀元二百分之一百六十九

0 - 損失:0.0519 - ACC :0.9796 - val_loss:0.0496 - val_acc:0.9815

大紀元170/200

0 - 損失:0.0496 - ACC:0.9815 - val_loss:0.0514 - val_acc:0.9801

任何知道如何輸出keras中每類精度的人?

+0

因爲響應已經可以說是回答你的問題,請接受它 - 謝謝 – desertnaut

回答

3

精確度&召回是多類分類更有用的措施(參見definitions)。繼Keras MNIST CNN例子(10級分類),你可以從sklearn.metrics得到使用classification_report每類措施:

from sklearn.metrics import classification_report 
import numpy as np 

Y_test = np.argmax(y_test, axis=1) # Convert one-hot to index 
y_pred = model.predict_classes(x_test) 
print(classification_report(Y_test, y_pred)) 

下面是結果:

  precision recall f1-score support 

     0  0.99  1.00  1.00  980 
     1  0.99  0.99  0.99  1135 
     2  1.00  0.99  0.99  1032 
     3  0.99  0.99  0.99  1010 
     4  0.98  1.00  0.99  982 
     5  0.99  0.99  0.99  892 
     6  1.00  0.99  0.99  958 
     7  0.97  1.00  0.99  1028 
     8  0.99  0.99  0.99  974 
     9  0.99  0.98  0.99  1009 

avg/total 0.99  0.99  0.99  10000 
+0

@ desertnaut.Thanks很多,這對我來說非常有用。該代碼可以在測試時間內輸出每班準確度,但是如何在Keras的培訓過程中打印每班準確度? – spider

+0

多少班?你真的想在每個訓練時期打印20個數字? – desertnaut

+0

@ desertnaut.Take每個訓練時代兩個類。我在這裏找到了一些代碼:[link] https://github.com/fchollet/keras/blob/53e541f7bf55de036f4f5641bd2947b96dd8c4c3/keras/metrics.py,但它也打印超精度和召回,而不是按類。而且我不確定這些代碼在批量訓練時是否可以正常工作。 – spider