模型评估
在训练循环就绪后,您已经将模型训练了 1000 个 epoch,并将其保存为 net。您还像之前设置 train_dataloader 一样设置了 test_dataloader——只是这次从测试目录而不是训练目录读取数据。
现在可以在测试数据上评估模型了。为此,您需要编写评估循环,遍历测试数据的各个批次,获取模型对每个批次的预测,并计算相应的准确率分数。我们开始吧!
本练习是课程的一部分
PyTorch 深度学习进阶
练习说明
- 将二分类的评估指标设置为
Accuracy,并将其赋给acc。 - 对于每个测试数据批次,获取模型输出并将其赋给
outputs。 - 循环结束后,计算测试集的总体准确率,并将其赋给
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}")