在Torch中进行模型评估通常需要使用验证集或测试集来评估模型的性能。下面是一个基本的示例来展示如何在Torch中进行模型评估:
import torch
import torch.nn as nn
import torch.optim as optim
# 定义模型
class SimpleModel(nn.Module):
def __init__(self):
super(SimpleModel, self).__init__()
self.fc = nn.Linear(10, 1)
def forward(self, x):
return self.fc(x)
# 创建模型实例
model = SimpleModel()
# 加载训练好的模型参数
model.load_state_dict(torch.load('model.pth'))
# 定义评估函数
def evaluate(model, dataloader, criterion):
model.eval()
total_loss = 0.0
total_samples = 0
with torch.no_grad():
for inputs, targets in dataloader:
outputs = model(inputs)
loss = criterion(outputs, targets)
total_loss += loss.item() * inputs.size(0)
total_samples += inputs.size(0)
avg_loss = total_loss / total_samples
return avg_loss
# 创建验证集的数据加载器
val_dataloader = ...
# 定义损失函数
criterion = nn.MSELoss()
# 计算模型在验证集上的平均损失
avg_val_loss = evaluate(model, val_dataloader, criterion)
print('Average validation loss:', avg_val_loss)
在上面的示例中,首先定义了一个简单的模型SimpleModel
,然后加载了预训练好的模型参数。接着定义了评估函数evaluate
来计算模型在验证集上的平均损失。最后,通过调用evaluate
函数来评估模型在验证集上的性能,并输出平均损失值。