CommencerCommencer gratuitement

Formation de modèles à sorties multiples

Lors de l'apprentissage de modèles à sorties multiples, il est essentiel de s'assurer que la fonction de perte est définie correctement.

Dans ce cas, le modèle produit deux résultats : des prédictions pour l'alphabet et le caractère. Pour chacun d'entre eux, il existe des étiquettes de vérité terrain correspondantes, ce qui vous permettra de calculer deux pertes distinctes : l'une résultant d'une classification incorrecte de l'alphabet et l'autre d'une classification incorrecte des caractères. Comme il s'agit dans les deux cas d'une tâche de classification multi-label, la perte d'entropie croisée peut être appliquée à chaque fois.

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

Cet exercice fait partie du cours

Deep learning intermédiaire avec PyTorch

Afficher le cours

Instructions

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

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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