Kursinhalt
Pytorch Grundlagen
Pytorch Grundlagen
Bewertung des Modells
Vorbereitung auf die Bewertung
Bevor Sie mit dem Bewertungsprozess auf dem Testset beginnen, müssen Sie Folgendes sicherstellen:
-
Setzen Sie das Modell in den Evaluierungsmodus: Verwenden Sie
model.eval()
, um Funktionen wie Dropout und Batch-Normalisierung zu deaktivieren und ein konsistentes Verhalten während der Bewertung sicherzustellen; -
Deaktivieren Sie das Gradienten-Tracking: Verwenden Sie
torch.no_grad()
, um Speicher zu sparen und Berechnungen zu beschleunigen, da während der Bewertung keine Gradienten erforderlich sind.
Umwandlung von Vorhersagen
Wie bereits zuvor erwähnt, wird die Ausgabe des Modells Logits (Rohwerte) sein. Um die vorhergesagten Klassenlabels zu erhalten, verwenden wir torch.argmax
, um den Index des maximalen Wertes entlang der Klassendimension zu extrahieren.
Berechnung von Metriken
Für Klassifikationsprobleme ist Genauigkeit ein nützlicher Ausgangsmetriker, vorausgesetzt, der Datensatz ist ausgewogen.
Um tiefere Einblicke in die Modellleistung zu gewinnen, können Sie zusätzliche Metriken wie Präzision, Recall und F1-Score berechnen. Sie können mehr über diese Metriken und ihre Formeln in diesem Artikel erfahren, indem Sie ihre jeweiligen Formeln verwenden.
Vollständige Implementierung
import torch import os os.system('wget https://staging-content-media-cdn.codefinity.com/courses/1dd2b0f6-6ec0-40e6-a570-ed0ac2209666/section_3/model_training.py 2>/dev/null') from model_training import model, X_test, y_test # Set model to evaluation mode model.eval() # Disable gradient tracking with torch.no_grad(): # Forward pass test_predictions = model(X_test) # Get predicted classes predicted_labels = torch.argmax(test_predictions, dim=1) # Calculate accuracy correct_predictions = (predicted_labels == y_test).sum().item() accuracy = correct_predictions / len(y_test) * 100 print(f"Test accuracy: {accuracy:.2f}%")
Danke für Ihr Feedback!