[英]how to calculate precision recall of multiclass classification problem in each epoch during training
我正在使用 Tensorflow 1.15.0 和 keras 2.3.1。我試圖在訓練期間為我的訓練數據和驗證數據計算每個時期的六類分類問題的精度和召回率。 我可以使用分類報告,但它只有在訓練完成后才有效。
from sklearn.metrics import classification_report
y_pred = final.predict(X_test)
y_indx = np.argmax(y_test_new, axis = 1)
pred_indx = np.argmax(y_pred, axis = 1)
print(classification_report(y_indx, pred_indx))
網絡 ResNet154 的結果如下所示,我的數據集是平衡的。
precision recall f1-score support
0 0.00 0.00 0.00 172482
1 0.00 0.00 0.00 172482
2 0.00 0.00 0.00 172482
3 0.00 0.00 0.00 172482
4 0.00 0.00 0.00 172482
5 0.17 1.00 0.29 172482
accuracy 0.17 1034892
macro avg 0.03 0.17 0.05 1034892
weighted avg 0.03 0.17 0.05 1034892
我只想通過使用回調來檢查我的訓練數據的精度和召回率以及 f1 分數,以確保它是否過度擬合網絡。
您需要定義一個特定的回調才能做到這一點。
您的問題的解決方案可在以下文章中找到: https : //medium.com/@thongonary/how-to-compute-f1-score-for-each-epoch-in-keras-a1acd17715a2 。
上面的文章提到了如何在每個 epoch 結束時計算您想要的指標。
否則,您可以定義一個自定義回調,您可以在其中訪問驗證集; 在on_epoch_end()
,您可以獲得TP
、 TN
、 FN
、 FP
,您可以使用它們來計算您想要的所有指標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.