CommencerCommencer gratuitement

Entraîner des modèles à sorties multiples

Lors de l’entraînement de modèles avec plusieurs sorties, il est crucial de vérifier que la fonction de perte est correctement définie.

Dans ce cas, 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, qui vous permettront de calculer deux pertes distinctes : l’une due aux erreurs de classification de l’alphabet, et l’autre due aux erreurs de classification du caractère. Comme, dans les deux cas, il s’agit d’une tâche de classification multi-classes, la perte par entropie croisée (Cross-Entropy) peut être appliquée à chaque fois.

Cependant, la descente de gradient n’optimise qu’une seule fonction de perte. Vous définirez donc la perte totale comme la somme des pertes alphabet et 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 affectez-la à loss_alpha.
  • Calculez la perte de classification du caractère et affectez-la à loss_char.
  • Calculez la perte totale comme la somme des deux pertes partielles et affectez-la à 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