ÎncepețiÎncepe gratuit

Antrenarea modelelor cu ieșiri multiple

Când antrenezi modele cu ieșiri multiple, este esențial să te asiguri că funcția de pierdere este definită corect.

În acest caz, modelul produce două ieșiri: predicții pentru alfabet și pentru caracter. Pentru fiecare dintre acestea există etichete de referință corespunzătoare, care îți permit să calculezi două pierderi separate: una rezultată din clasificările incorecte ale alfabetului și cealaltă din clasificările incorecte ale caracterului. Deoarece în ambele cazuri ai de-a face cu o sarcină de clasificare multi-clasă, poți aplica de fiecare dată pierderea Cross-Entropy.

Totuși, coborârea pe gradient poate optimiza o singură funcție de pierdere. Prin urmare, vei defini pierderea totală ca sumă a pierderilor pentru alfabet și pentru caracter.

Acest exercițiu face parte din cursul

Deep Learning intermediar cu PyTorch

Vezi cursul

Instrucțiuni pentru exercițiu

  • Calculează pierderea de clasificare pentru alfabet și atribuie-o variabilei loss_alpha.
  • Calculează pierderea de clasificare pentru caracter și atribuie-o variabilei loss_char.
  • Calculează pierderea totală ca sumă a celor două pierderi parțiale și atribuie-o variabilei loss.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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()
Editează și rulează codul