CommencezCommencez gratuitement

Entraîner des modèles à sorties multiples

Lors de l'entraînement de modèles avec plusieurs sorties, il est essentiel de bien définir la fonction de perte.

Ici, le modèle produit deux sorties : des prédictions pour l'alphabet et pour le caractère. Pour chacune, il existe des étiquettes de vérité terrain correspondantes, ce qui vous permet de calculer deux pertes distinctes : l'une due aux mauvaises classifications d'alphabet et l'autre due aux erreurs de classification de caractère. Comme, dans les deux cas, il s'agit d'une tâche de classification à étiquettes multiples, la perte par entropie croisée (Cross-Entropy) peut être appliquée chaque fois.

Cependant, la descente de gradient ne peut optimiser qu'une seule fonction de perte. Vous définirez donc la perte totale comme la somme des pertes pour l'alphabet et pour le caractère.

Cette activité fait partie du cours

Apprentissage profond intermédiaire avec PyTorch

Voir le cours

Instructions de l’exercice

  • Calculez la perte de classification de l'alphabet et assignez-la à loss_alpha.
  • Calculez la perte de classification du caractère et assignez-la à loss_char.
  • Calculez la perte totale comme la somme des deux pertes partielles et assignez-la à loss.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

net = Net()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.05)

for epoch in range(1):
    for images, labels_alpha, labels_char in dataloader_train:
        optimizer.zero_grad()
        outputs_alpha, outputs_char = net(images)
        # Compute alphabet classification loss
        loss_alpha = ____
        # Compute character classification loss
        loss_char = ____
        # Compute total loss
        loss = ____
        loss.backward()
        optimizer.step()
Modifier et exécuter le code