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
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()