การประเมินโมเดล
หลังจากจัดการ training loop เรียบร้อยแล้ว โมเดลได้ถูกฝึกไปแล้ว 1,000 epochs และพร้อมใช้งานในชื่อ net นอกจากนี้ยังได้ตั้งค่า test_dataloader ไว้แล้วในลักษณะเดียวกับ train_dataloader ก่อนหน้า—เพียงแต่อ่านข้อมูลจากไดเรกทอรีทดสอบแทนไดเรกทอรีฝึก
ตอนนี้พร้อมแล้วที่จะประเมินโมเดลบนข้อมูลทดสอบ โดยต้องเขียน evaluation loop เพื่อวนซ้ำผ่านแต่ละ batch ของข้อมูลทดสอบ รับค่าการพยากรณ์จากโมเดลสำหรับแต่ละ batch และคำนวณ accuracy score มาเริ่มกันเลย!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning ระดับกลางด้วย PyTorch
คำแนะนำการฝึกหัด
- ตั้งค่า evaluation metric เป็น
Accuracyสำหรับการจำแนกประเภทแบบ binary และกำหนดให้กับตัวแปรacc - สำหรับแต่ละ batch ของข้อมูลทดสอบ ให้รับ output ของโมเดลและกำหนดให้กับตัวแปร
outputs - หลังจากสิ้นสุด loop ให้คำนวณ accuracy รวมบนข้อมูลทดสอบและกำหนดให้กับตัวแปร
test_accuracy
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
import torch
from torchmetrics import Accuracy
# Set up binary accuracy metric
acc = ____
net.eval()
with torch.no_grad():
for features, labels in dataloader_test:
# Get predicted probabilities for test data batch
outputs = ____
preds = (outputs >= 0.5).float()
acc(preds, labels.view(-1, 1))
# Compute total test accuracy
test_accuracy = ____
print(f"Test accuracy: {test_accuracy}")