多類別模型評估
來用 precision(精確率)與 recall(召回率)評估我們的雲層分類器,看看它辨識「7」種雲類的表現如何。在這種多類別分類任務中,關鍵在於你如何在各類別之間做平均。回想有四種作法:
- 不做平均,逐一分析各類別的結果;
- Micro 平均,忽略類別、在所有樣本上全域計算指標;
- Macro 平均,先對每個類別各自計算指標,再做簡單平均;
- 加權平均,類似 Macro,但用類別大小作為加權。
torchmetrics 中的 Precision 與 Recall 已經匯入。現在就來看看模型的實際表現吧!
本練習屬於課程
Intermediate Deep Learning with PyTorch
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Define metrics
metric_precision = Precision(task=____, num_classes=____, average=____)
metric_recall = ____
net.eval()
with torch.no_grad():
for images, labels in dataloader_test:
outputs = net(images)
_, preds = torch.max(outputs, 1)
metric_precision(preds, labels)
metric_recall(preds, labels)
precision = metric_precision.compute()
recall = metric_recall.compute()
print(f"Precision: {precision}")
print(f"Recall: {recall}")