Bewertung des Modells
Vorbereitung auf die Auswertung
Vor Beginn des Auswertungsprozesses auf dem Testdatensatz sollten Sie Folgendes sicherstellen:
-
Modell in den Evaluierungsmodus 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 von Vorhersagen
Wie bereits zuvor erwähnt, liefert das Modell als Ausgabe Logits (Rohwerte). Um die vorhergesagten Klassenlabels zu erhalten, wird torch.argmax verwendet, um den Index des maximalen Wertes 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 nützliche Einstiegsmetrik, 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 ein tieferes Verständnis der 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
Can you explain what precision, recall, and F1-score mean?
How can I calculate precision, recall, and F1-score in PyTorch?
Why is accuracy not always a reliable metric for imbalanced datasets?
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 Evaluierungsmodus 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 von Vorhersagen
Wie bereits zuvor erwähnt, liefert das Modell als Ausgabe Logits (Rohwerte). Um die vorhergesagten Klassenlabels zu erhalten, wird torch.argmax verwendet, um den Index des maximalen Wertes 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 nützliche Einstiegsmetrik, 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 ein tieferes Verständnis der 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!