Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Evaluering av Modellen | Nevrale Nettverk i PyTorch
PyTorch-essensielt

bookEvaluering av Modellen

Forberedelse til evaluering

Før du starter evalueringsprosessen på testsettet, må du sørge for følgende:

  1. Sett modellen i evalueringsmodus: bruk model.eval() for å slå av funksjoner som dropout og batch normalisering, slik at du får konsistent oppførsel under evaluering;

  2. Deaktiver gradientsporing: bruk torch.no_grad() for å spare minne og øke hastigheten på beregningene, siden gradienter ikke er nødvendig 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 av prediksjoner

Som tidligere nevnt vil utdataene fra modellen være logits (rå score). For å få de predikerte klasselabelene, bruker vi torch.argmax for å hente ut indeksen til maksimumsverdien langs klassedimensjonen.

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

Beregning av metrikker

For klassifiseringsproblemer er nøyaktighet en nyttig startmetrik, forutsatt at datasettet er balansert.

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

For å få dypere innsikt i modellens ytelse, kan du beregne flere metrikker som presisjon, gjenkalling og F1-score. Du kan lære mer om disse metrikker og deres formler i denne artikkelen, ved å bruke deres respektive formler.

Fullstendig 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 av følgende trinn er nødvendig når du evaluerer en trent PyTorch-modell?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain what precision, recall, and F1-score mean?

How can I calculate precision, recall, and F1-score in PyTorch?

Why is it important to use metrics other than accuracy for imbalanced datasets?

Awesome!

Completion rate improved to 5

bookEvaluering av Modellen

Sveip for å vise menyen

Forberedelse til evaluering

Før du starter evalueringsprosessen på testsettet, må du sørge for følgende:

  1. Sett modellen i evalueringsmodus: bruk model.eval() for å slå av funksjoner som dropout og batch normalisering, slik at du får konsistent oppførsel under evaluering;

  2. Deaktiver gradientsporing: bruk torch.no_grad() for å spare minne og øke hastigheten på beregningene, siden gradienter ikke er nødvendig 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 av prediksjoner

Som tidligere nevnt vil utdataene fra modellen være logits (rå score). For å få de predikerte klasselabelene, bruker vi torch.argmax for å hente ut indeksen til maksimumsverdien langs klassedimensjonen.

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

Beregning av metrikker

For klassifiseringsproblemer er nøyaktighet en nyttig startmetrik, forutsatt at datasettet er balansert.

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

For å få dypere innsikt i modellens ytelse, kan du beregne flere metrikker som presisjon, gjenkalling og F1-score. Du kan lære mer om disse metrikker og deres formler i denne artikkelen, ved å bruke deres respektive formler.

Fullstendig 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 av følgende trinn er nødvendig når du evaluerer en trent PyTorch-modell?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 3
some-alt