モデルの評価
トレーニングループが整ったので、1000エポックの学習を終えたモデルが net として利用できる状態です。test_dataloader も、以前に train_dataloader を用意したのとまったく同じ方法で設定済みです—学習用ディレクトリではなくテスト用ディレクトリからデータを読み込む点だけが異なります。
これでテストデータに対してモデルを評価できます。評価するには、テストデータのバッチを反復処理する評価ループを書き、各バッチに対するモデルの予測を取得し、その精度を計算する必要があります。さっそくやってみましょう!
この演習はコースの一部です
PyTorchによる中級ディープラーニング
演習の手順
- バイナリ分類用に評価指標を
Accuracyとして設定し、accに代入します。 - テストデータの各バッチについて、モデルの出力を取得して
outputsに代入します。 - ループ後に、テスト全体の精度を計算して
test_accuracyに代入します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
import torch
from torchmetrics import Accuracy
# Set up binary accuracy metric
acc = ____
net.eval()
with torch.no_grad():
for features, labels in dataloader_test:
# Get predicted probabilities for test data batch
outputs = ____
preds = (outputs >= 0.5).float()
acc(preds, labels.view(-1, 1))
# Compute total test accuracy
test_accuracy = ____
print(f"Test accuracy: {test_accuracy}")