Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Evaluering af Modellen | Neurale Netværk i PyTorch
PyTorch-Grundlæggende

bookEvaluering af Modellen

Forberedelse til evaluering

Før du påbegynder evalueringsprocessen på testdatasættet, skal du sikre følgende:

  1. Sæt modellen i evalueringsmode: brug model.eval() for at deaktivere funktioner som dropout og batch normalization, hvilket sikrer ensartet adfærd under evaluering;

  2. Deaktiver gradientsporing: brug torch.no_grad() for at spare hukommelse og øge beregningshastigheden, da gradients ikke er nødvendige under evaluering.

# 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)

Konvertering af forudsigelser

Som tidligere nævnt vil outputtet fra modellen være logits (rå score). For at få de forudsagte klasselabels anvendes torch.argmax til at udtrække indekset for den maksimale værdi langs klassedimensionen.

# Convert logits to predicted class labels
predicted_labels = torch.argmax(test_predictions, dim=1)

Beregning af metrikker

For klassifikationsproblemer er nøjagtighed en nyttig startmetrik, forudsat at datasættet er balanceret.

# Calculate accuracy
correct_predictions = (predicted_labels == y_test).sum().item()
accuracy = correct_predictions / len(y_test) * 100
print(f"Test accuracy: {accuracy:.2f}%")

For at opnå dybere indsigt i modellens ydeevne kan du beregne yderligere metrikker såsom præcision, recall og F1-score. Du kan lære mere om disse metrikker og deres formler i denne artikel, hvor deres respektive formler gennemgås.

Fuld implementering

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

Hvilket af følgende trin er nødvendigt, når en trænet PyTorch-model evalueres?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 5

bookEvaluering af Modellen

Stryg for at vise menuen

Forberedelse til evaluering

Før du påbegynder evalueringsprocessen på testdatasættet, skal du sikre følgende:

  1. Sæt modellen i evalueringsmode: brug model.eval() for at deaktivere funktioner som dropout og batch normalization, hvilket sikrer ensartet adfærd under evaluering;

  2. Deaktiver gradientsporing: brug torch.no_grad() for at spare hukommelse og øge beregningshastigheden, da gradients ikke er nødvendige under evaluering.

# 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)

Konvertering af forudsigelser

Som tidligere nævnt vil outputtet fra modellen være logits (rå score). For at få de forudsagte klasselabels anvendes torch.argmax til at udtrække indekset for den maksimale værdi langs klassedimensionen.

# Convert logits to predicted class labels
predicted_labels = torch.argmax(test_predictions, dim=1)

Beregning af metrikker

For klassifikationsproblemer er nøjagtighed en nyttig startmetrik, forudsat at datasættet er balanceret.

# Calculate accuracy
correct_predictions = (predicted_labels == y_test).sum().item()
accuracy = correct_predictions / len(y_test) * 100
print(f"Test accuracy: {accuracy:.2f}%")

For at opnå dybere indsigt i modellens ydeevne kan du beregne yderligere metrikker såsom præcision, recall og F1-score. Du kan lære mere om disse metrikker og deres formler i denne artikel, hvor deres respektive formler gennemgås.

Fuld implementering

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

Hvilket af følgende trin er nødvendigt, når en trænet PyTorch-model evalueres?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
some-alt