PyTorchでモデルの評価とパフォーマンス分析を行う方法は何ですか?
PyTorchを使用すると、torch.utils.data.DataLoaderを使用してテストデータセットをロードし、モデルのeval()メソッドを呼び出して評価モードに入れます。その後、テストデータセットを使用してモデルを推論し、精度、損失値などのモデルのパフォーマンス指標を計算できます。
import torch
import torch.nn as nn
import torch.optim as optim
import torch.utils.data as data
# 加载测试数据集
test_dataset = MyDataset(data_path='test_data.pth')
test_loader = data.DataLoader(test_dataset, batch_size=64, shuffle=False)
# 加载模型
model = MyModel()
model.load_state_dict(torch.load('model.pth'))
model.eval()
criterion = nn.CrossEntropyLoss()
# 在测试数据集上进行推理
correct = 0
total = 0
total_loss = 0
with torch.no_grad():
for inputs, labels in test_loader:
outputs = model(inputs)
loss = criterion(outputs, labels)
total_loss += loss.item()
_, predicted = torch.max(outputs, 1)
total += labels.size(0)
correct += (predicted == labels).sum().item()
accuracy = correct / total
average_loss = total_loss / len(test_loader)
print(f'Accuracy: {accuracy}, Average Loss: {average_loss}')
torch.utils.tensorboardなどのツールを使用して、モデルの性能分析を行うことができます。例えば、トレーニングプロセス中の損失値や正解率の変化、モデルのパラメータ分布などを視覚化することができます。