Torchでモデルの評価を行う方法は何ですか?

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関数を呼び出してモデルの検証セットでの性能を評価し、平均損失値を出力します。

bannerAds