Modellevaluierung
Nachdem die Trainingsschleife fertig ist, hast du das Modell für 1000 Epochen trainiert, und es steht dir als net zur Verfügung. Du hast auch einen test_dataloader auf genau die gleiche Weise eingerichtet wie zuvor bei train_dataloader – nur dass die Daten diesmal aus dem Test- statt dem Trainingsverzeichnis gelesen werden.
Du kannst jetzt das Modell mit den Testdaten evaluieren. Dafür musst du eine Evaluierungsschleife schreiben, die über die Batches der Testdaten iteriert, die Vorhersagen des Modells für jeden Batch erhält und den Genauigkeitswert dafür berechnet. Los geht’s!
Diese Übung ist Teil des Kurses
Deep Learning mit PyTorch für Fortgeschrittene
Anleitung zur Übung
- Richte die Evaluierungsmetrik als
Accuracyfür binäre Klassifikation ein und weise sieacczu. - Hole für jeden Batch von Testdaten die Ausgaben des Modells und weise sie
outputszu. - Berechne nach der Schleife die gesamte Testgenauigkeit und weise sie
test_accuracyzu.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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}")