Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Bewertung des Modells | Neuronale Netzwerke in PyTorch
PyTorch-Grundlagen

bookBewertung des Modells

Vorbereitung auf die Auswertung

Vor Beginn des Auswertungsprozesses auf dem Testdatensatz sollten Sie Folgendes sicherstellen:

  1. 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;

  2. 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

123456789101112131415161718
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}%")
copy
question mark

Welcher der folgenden Schritte ist bei der Bewertung eines trainierten PyTorch-Modells erforderlich?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 5

bookBewertung des Modells

Swipe um das Menü anzuzeigen

Vorbereitung auf die Auswertung

Vor Beginn des Auswertungsprozesses auf dem Testdatensatz sollten Sie Folgendes sicherstellen:

  1. 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;

  2. 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

123456789101112131415161718
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}%")
copy
question mark

Welcher der folgenden Schritte ist bei der Bewertung eines trainierten PyTorch-Modells erforderlich?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 3
some-alt