การวิเคราะห์ metric แยกตามคลาส
แม้ว่า metric แบบรวม (aggregated) จะเป็นตัวชี้วัดประสิทธิภาพของโมเดลที่มีประโยชน์ แต่การดู metric แยกตามคลาสมักให้ข้อมูลเชิงลึกที่มีคุณค่ายิ่งกว่า เพราะช่วยให้เห็นว่าโมเดลทำงานได้ไม่ดีในคลาสใดบ้าง
ในแบบฝึกหัดนี้ จะรันลูปการประเมินผลอีกครั้งเพื่อหาค่า precision ของตัวจำแนกประเภทเมฆ แต่คราวนี้จะแยกคำนวณทีละคลาส จากนั้นจะแมปคะแนนเหล่านี้กับชื่อคลาสเพื่อตีความผลลัพธ์ โดย Precision ได้ import ไว้ให้แล้วเช่นเคย ขอให้โชคดี!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning ระดับกลางด้วย PyTorch
คำแนะนำการฝึกหัด
- กำหนด precision metric ที่เหมาะสมสำหรับการคำนวณแบบแยกตามคลาส
- คำนวณค่า precision แยกตามคลาสโดยเติม dict comprehension ให้สมบูรณ์ โดยวนซ้ำผ่าน
.items()ของ attribute.class_to_idxของdataset_test
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define precision metric
metric_precision = Precision(
____, ____, ____
)
net.eval()
with torch.no_grad():
for images, labels in dataloader_test:
outputs = net(images)
_, preds = torch.max(outputs, 1)
metric_precision(preds, labels)
precision = metric_precision.compute()
# Get precision per class
precision_per_class = {
k: ____[____].____
for k, v
in ____
}
print(precision_per_class)