Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Evaluatie van het Model | Neurale Netwerken in PyTorch
PyTorch Essentials

bookEvaluatie van het Model

Voorbereiden op Evaluatie

Voordat u begint met het evaluatieproces op de testset, moet u het volgende zekerstellen:

  1. Zet het model in evaluatiemodus: gebruik model.eval() om functies zoals dropout en batchnormalisatie uit te schakelen, zodat het gedrag tijdens evaluatie consistent blijft;

  2. Schakel het bijhouden van gradiënten uit: gebruik torch.no_grad() om geheugen te besparen en berekeningen te versnellen, aangezien gradiënten niet nodig zijn tijdens evaluatie.

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

Voorspellingen Converteren

Zoals eerder vermeld, zal de uitvoer van het model bestaan uit logits (ruwe scores). Om de voorspelde klassenlabels te verkrijgen, gebruiken we torch.argmax om de index van de maximale waarde langs de klasse-dimensie te extraheren.

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

Metingen Berekenen

Voor classificatieproblemen is nauwkeurigheid een nuttige startmetriek, mits de dataset in balans is.

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

Voor diepgaandere inzichten in de modelprestaties kunnen aanvullende statistieken zoals precisie, herinnering en F1-score worden berekend. Meer informatie over deze statistieken en hun formules is te vinden in dit artikel, waarin de respectievelijke formules worden gebruikt.

Volledige Implementatie

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

Welke van de volgende stappen is noodzakelijk bij het evalueren van een getraind PyTorch-model?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

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

bookEvaluatie van het Model

Veeg om het menu te tonen

Voorbereiden op Evaluatie

Voordat u begint met het evaluatieproces op de testset, moet u het volgende zekerstellen:

  1. Zet het model in evaluatiemodus: gebruik model.eval() om functies zoals dropout en batchnormalisatie uit te schakelen, zodat het gedrag tijdens evaluatie consistent blijft;

  2. Schakel het bijhouden van gradiënten uit: gebruik torch.no_grad() om geheugen te besparen en berekeningen te versnellen, aangezien gradiënten niet nodig zijn tijdens evaluatie.

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

Voorspellingen Converteren

Zoals eerder vermeld, zal de uitvoer van het model bestaan uit logits (ruwe scores). Om de voorspelde klassenlabels te verkrijgen, gebruiken we torch.argmax om de index van de maximale waarde langs de klasse-dimensie te extraheren.

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

Metingen Berekenen

Voor classificatieproblemen is nauwkeurigheid een nuttige startmetriek, mits de dataset in balans is.

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

Voor diepgaandere inzichten in de modelprestaties kunnen aanvullende statistieken zoals precisie, herinnering en F1-score worden berekend. Meer informatie over deze statistieken en hun formules is te vinden in dit artikel, waarin de respectievelijke formules worden gebruikt.

Volledige Implementatie

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

Welke van de volgende stappen is noodzakelijk bij het evalueren van een getraind PyTorch-model?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 3
some-alt