以下是一个基本的模型测试代码示例,展示如何使用 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}')

这段代码包含以下步骤:

  1. 加载测试数据集,并使用 DataLoader 加载数据。
  2. 加载训练好的模型,并将其设置为评估模式(即关闭 Dropout 和 Batch Normalization)。
  3. 定义损失函数(在测试阶段不使用优化器)。
  4. 对测试数据集进行迭代,计算模型的损失和正确率。
  5. 输出测试结果。

通过运行这段代码,你可以评估模型在测试数据集上的性能,从而判断模型的泛化能力。

PyTorch 模型测试代码示例:评估模型性能

原文地址: https://www.cveoy.top/t/topic/ov4Z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录