PyTorch 模型测试代码示例:评估模型性能
以下是一个基本的模型测试代码示例,展示如何使用 PyTorch 评估模型在测试数据集上的性能。
import torch
import torch.nn as nn
from torch.utils.data import DataLoader
from dataset import MyDataset
# 加载测试数据集
test_dataset = MyDataset(test=True)
test_loader = DataLoader(test_dataset, batch_size=32, shuffle=True)
# 加载模型
model = MyModel()
model.load_state_dict(torch.load('my_model.pth'))
model.eval()
# 定义损失函数
criterion = nn.CrossEntropyLoss()
# 测试模型
total_loss = 0.0
total_correct = 0
total_samples = 0
with torch.no_grad():
for inputs, targets in test_loader:
# 计算预测值
outputs = model(inputs)
loss = criterion(outputs, targets)
# 统计损失和正确率
total_loss += loss.item() * targets.size(0)
_, predicted = torch.max(outputs.data, 1)
total_correct += (predicted == targets).sum().item()
total_samples += targets.size(0)
# 输出结果
avg_loss = total_loss / total_samples
accuracy = total_correct / total_samples
print(f'Test Loss: {avg_loss:.4f} | Test Accuracy: {accuracy:.4f}')
这段代码包含以下步骤:
- 加载测试数据集,并使用 DataLoader 加载数据。
- 加载训练好的模型,并将其设置为评估模式(即关闭 Dropout 和 Batch Normalization)。
- 定义损失函数(在测试阶段不使用优化器)。
- 对测试数据集进行迭代,计算模型的损失和正确率。
- 输出测试结果。
通过运行这段代码,你可以评估模型在测试数据集上的性能,从而判断模型的泛化能力。
原文地址: https://www.cveoy.top/t/topic/ov4Z 著作权归作者所有。请勿转载和采集!