ÎncepețiÎncepe gratuit

Pierderea generatorului

Înainte de a putea antrena GAN-ul, trebuie să definești funcții de pierdere atât pentru generator, cât și pentru discriminator. Vei începe cu primul.

Amintește-ți că rolul generatorului este să producă imagini false care să îl păcălească pe discriminator să le clasifice drept reale. Prin urmare, generatorul înregistrează o pierdere dacă imaginile pe care le-a generat sunt clasificate de discriminator ca false (eticheta 0).

Definește funcția gen_loss(), care calculează pierderea generatorului. Aceasta primește patru argumente:

  • gen, modelul generator
  • disc, modelul discriminator
  • num_images, numărul de imagini din lot
  • z_dim, dimensiunea zgomotului aleatoriu de intrare

Acest exercițiu face parte din cursul

Deep Learning pentru imagini cu PyTorch

Vezi cursul

Instrucțiuni pentru exercițiu

  • Generează zgomot aleatoriu cu forma num_images pe z_dim și atribuie-l variabilei noise.
  • Folosește generatorul pentru a crea o imagine falsă din noise și atribuie-o variabilei fake.
  • Obține predicția discriminatorului pentru imaginea falsă generată.
  • Calculează pierderea generatorului apelând criterion cu predicțiile discriminatorului și un tensor de unu cu aceeași formă.

Exercițiu interactiv practic

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

def gen_loss(gen, disc, criterion, num_images, z_dim):
    # Define random noise
    noise = ____(num_images, z_dim)
    # Generate fake image
    fake = ____
    # Get discriminator's prediction on the fake image
    disc_pred = ____
    # Compute generator loss
    criterion = nn.BCEWithLogitsLoss()
    gen_loss = ____(____, ____)
    return gen_loss
Editează și rulează codul