Contenu du cours
Essentiels de Pytorch
Essentiels de Pytorch
Évaluation du Modèle
Préparation pour l'évaluation
Avant de commencer le processus d'évaluation sur le jeu de test, vous devez vous assurer des points suivants :
-
Mettre le modèle en mode évaluation : utilisez
model.eval()
pour désactiver des fonctionnalités comme le dropout et la normalisation par lot, assurant un comportement cohérent pendant l'évaluation ; -
Désactiver le suivi des gradients : utilisez
torch.no_grad()
pour économiser de la mémoire et accélérer les calculs, car les gradients ne sont pas nécessaires pendant l'évaluation.
Conversion des Prédictions
Comme nous l'avons déjà mentionné précédemment, la sortie du modèle sera des logits (scores bruts). Pour obtenir les étiquettes de classe prédites, nous utilisons torch.argmax
pour extraire l'indice de la valeur maximale le long de la dimension de classe.
Calcul des Métriques
Pour les problèmes de classification, l'exactitude est une métrique de départ utile, à condition que le jeu de données soit équilibré.
Pour obtenir des informations plus approfondies sur les performances du modèle, vous pouvez calculer des métriques supplémentaires telles que la précision, le rappel et le score F1. Vous pouvez en savoir plus sur ces métriques et leurs formules dans cet article, en utilisant leurs formules respectives.
Implémentation complète
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}%")
Merci pour vos commentaires !