Évaluer la performance du modèle

Introduction au Deep Learning avec PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Entraînement, validation et test

$$

  • Un ensemble de données est généralement scindé en trois sous-ensembles :
Pourcentage des données Rôle
Entraînement 80-90 % Ajuste les paramètres du modèle
Validation 10-20 % Ajuste les hyperparamètres
Test 5-10 % Évalue la performance finale du modèle

$$

  • Suivre la perte et la précision pendant l'entraînement et la validation
Introduction au Deep Learning avec PyTorch

Calcul de la perte d'entraînement

$$

À chaque époque :

  • Totaliser la perte sur toutes les lots du « dataloader »
  • Calculer la perte moyenne d'entraînement à la fin de l'époque
training_loss = 0.0

for inputs, labels in trainloader: # Run the forward pass outputs = model(inputs) # Compute the loss loss = criterion(outputs, labels)
# Backpropagation loss.backward() # Compute gradients optimizer.step() # Update weights optimizer.zero_grad() # Reset gradients
# Calculate and sum the loss training_loss += loss.item()
epoch_loss = training_loss / len(trainloader)
Introduction au Deep Learning avec PyTorch

Calcul de la perte de validation

validation_loss = 0.0
model.eval() # Mettre le modèle en mode évaluation


with torch.no_grad(): # Désactiver les gradients pour l'efficacité
for inputs, labels in validationloader: # Run the forward pass outputs = model(inputs) # Calculate the loss loss = criterion(outputs, labels) validation_loss += loss.item() epoch_loss = validation_loss / len(validationloader) # Calculer la perte moyenne
model.train() # Revenir en mode entraînement
Introduction au Deep Learning avec PyTorch

Surapprentissage

un exemple de surapprentissage

Introduction au Deep Learning avec PyTorch

Calculer la précision avec torchmetrics

import torchmetrics


# Create accuracy metric metric = torchmetrics.Accuracy(task="multiclass", num_classes=3)
for features, labels in dataloader: outputs = model(features) # Forward pass # Compute batch accuracy (keeping argmax for one-hot labels) metric.update(outputs, labels.argmax(dim=-1))
# Compute accuracy over the whole epoch accuracy = metric.compute()
# Reset metric for the next epoch metric.reset()
Introduction au Deep Learning avec PyTorch

Passons à la pratique !

Introduction au Deep Learning avec PyTorch

Preparing Video For Download...