ÎncepețiÎncepe gratuit

Pierderea discriminatorului

Este momentul să definești pierderea pentru discriminator. Reamintește-ți că rolul discriminatorului este să clasifice imaginile ca reale sau false. Prin urmare, discriminatorul înregistrează o pierdere dacă clasifică greșit rezultatele generatorului ca reale (eticheta 1) sau imaginile reale ca false (eticheta 0).

Definește funcția disc_loss(), care calculează pierderea discriminatorului. Aceasta primește cinci argumente:

  • gen, modelul generator
  • disc, modelul discriminator
  • real, un eșantion de imagini reale din datele de antrenament
  • num_images, numărul de imagini dintr-un lot
  • z_dim, dimensiunea zgomotului aleator de intrare

Acest exercițiu face parte din cursul

Deep Learning pentru imagini cu PyTorch

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește discriminatorul pentru a clasifica imaginile fake și atribuie predicțiile variabilei disc_pred_fake.
  • Calculează componenta de pierdere pentru imaginile false apelând criterion cu predicțiile discriminatorului pentru imaginile false și un tensor de zerouri cu aceeași formă.
  • Folosește discriminatorul pentru a clasifica imaginile real și atribuie predicțiile variabilei disc_pred_real.
  • Calculează componenta de pierdere pentru imaginile reale apelând criterion cu predicțiile discriminatorului pentru imaginile reale și un tensor de unu cu aceeași formă.

Exercițiu interactiv practic

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

def disc_loss(gen, disc, real, num_images, z_dim):
    criterion = nn.BCEWithLogitsLoss()
    noise = torch.randn(num_images, z_dim)
    fake = gen(noise)
    # Get discriminator's predictions for fake images
    disc_pred_fake = ____
    # Calculate the fake loss component
    fake_loss = ____
    # Get discriminator's predictions for real images
    disc_pred_real = ____
    # Calculate the real loss component
    real_loss = ____
    disc_loss = (real_loss + fake_loss) / 2
    return disc_loss
Editează și rulează codul