Bewertung des Modells
Vorbereitung auf die Auswertung
Vor Beginn des Auswertungsprozesses auf dem Testdatensatz sollten Sie Folgendes sicherstellen:
-
Modell in den Auswertungsmodus versetzen: Verwenden Sie
model.eval()
, um Funktionen wie Dropout und Batch-Normalisierung zu deaktivieren und ein konsistentes Verhalten während der Auswertung zu gewährleisten; -
Gradientenberechnung deaktivieren: Verwenden Sie
torch.no_grad()
, um Speicher zu sparen und die Berechnungen zu beschleunigen, da während der Auswertung keine Gradienten benötigt werden.
# Set the model to evaluation mode
model.eval()
# Disable gradient computation for evaluation
with torch.no_grad():
# Forward pass on the test data
test_predictions = model(X_test)
Umwandlung der Vorhersagen
Wie bereits zuvor erwähnt, gibt das Modell Logits (Rohwerte) als Ausgabe zurück. Um die vorhergesagten Klassenlabels zu erhalten, verwenden wir torch.argmax
, um den Index des maximalen Werts entlang der Klassendimension zu extrahieren.
# Convert logits to predicted class labels
predicted_labels = torch.argmax(test_predictions, dim=1)
Berechnung von Metriken
Für Klassifikationsprobleme ist die Genauigkeit eine sinnvolle Anfangsmetrik, sofern der Datensatz ausgewogen ist.
# Calculate accuracy
correct_predictions = (predicted_labels == y_test).sum().item()
accuracy = correct_predictions / len(y_test) * 100
print(f"Test accuracy: {accuracy:.2f}%")
Um tiefere Einblicke in die Modellleistung zu erhalten, können zusätzliche Metriken wie Präzision, Recall und F1-Score berechnet werden. Weitere Informationen zu diesen Metriken und deren Formeln finden Sie in diesem Artikel, unter Verwendung der jeweiligen Formeln.
Vollständige Implementierung
123456789101112131415161718import 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!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 5
Bewertung des Modells
Swipe um das Menü anzuzeigen
Vorbereitung auf die Auswertung
Vor Beginn des Auswertungsprozesses auf dem Testdatensatz sollten Sie Folgendes sicherstellen:
-
Modell in den Auswertungsmodus versetzen: Verwenden Sie
model.eval()
, um Funktionen wie Dropout und Batch-Normalisierung zu deaktivieren und ein konsistentes Verhalten während der Auswertung zu gewährleisten; -
Gradientenberechnung deaktivieren: Verwenden Sie
torch.no_grad()
, um Speicher zu sparen und die Berechnungen zu beschleunigen, da während der Auswertung keine Gradienten benötigt werden.
# Set the model to evaluation mode
model.eval()
# Disable gradient computation for evaluation
with torch.no_grad():
# Forward pass on the test data
test_predictions = model(X_test)
Umwandlung der Vorhersagen
Wie bereits zuvor erwähnt, gibt das Modell Logits (Rohwerte) als Ausgabe zurück. Um die vorhergesagten Klassenlabels zu erhalten, verwenden wir torch.argmax
, um den Index des maximalen Werts entlang der Klassendimension zu extrahieren.
# Convert logits to predicted class labels
predicted_labels = torch.argmax(test_predictions, dim=1)
Berechnung von Metriken
Für Klassifikationsprobleme ist die Genauigkeit eine sinnvolle Anfangsmetrik, sofern der Datensatz ausgewogen ist.
# Calculate accuracy
correct_predictions = (predicted_labels == y_test).sum().item()
accuracy = correct_predictions / len(y_test) * 100
print(f"Test accuracy: {accuracy:.2f}%")
Um tiefere Einblicke in die Modellleistung zu erhalten, können zusätzliche Metriken wie Präzision, Recall und F1-Score berechnet werden. Weitere Informationen zu diesen Metriken und deren Formeln finden Sie in diesem Artikel, unter Verwendung der jeweiligen Formeln.
Vollständige Implementierung
123456789101112131415161718import 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!