Evaluatie van het Model
Voorbereiden op Evaluatie
Voordat u begint met het evaluatieproces op de testset, moet u het volgende zekerstellen:
-
Zet het model in evaluatiemodus: gebruik
model.eval()
om functies zoals dropout en batchnormalisatie uit te schakelen, zodat het gedrag tijdens evaluatie consistent blijft; -
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
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}%")
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
Evaluatie 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:
-
Zet het model in evaluatiemodus: gebruik
model.eval()
om functies zoals dropout en batchnormalisatie uit te schakelen, zodat het gedrag tijdens evaluatie consistent blijft; -
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
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}%")
Bedankt voor je feedback!