Kom igångKom igång gratis

Generatorns förlust

Innan du kan träna ditt GAN behöver du definiera förlustfunktioner för både generatorn och diskriminatorn. Du börjar med den förstnämnda.

Kom ihåg att generatorns uppgift är att producera falska bilder som lurar diskriminatorn att klassificera dem som äkta. Generatorn får därför en förlust om de bilder den genererat klassificeras av diskriminatorn som falska (etikett 0).

Definiera funktionen gen_loss() som beräknar generatorns förlust. Den tar fyra argument:

  • gen, generatormodellen
  • disc, diskriminatormodellen
  • num_images, antalet bilder i batchen
  • z_dim, storleken på det slumpmässiga indatabrusvet

Den här övningen är en del av kursen

Djupinlärning för bilder med PyTorch

Visa kurs

Övningsinstruktioner

  • Generera slumpmässigt brus med formen num_images gånger z_dim och tilldela det till noise.
  • Använd generatorn för att generera en falsk bild från noise och tilldela den till fake.
  • Hämta diskriminatorns prediktion för den genererade falska bilden.
  • Beräkna generatorns förlust genom att anropa criterion med diskriminatorns prediktioner och en tensor med ettor av samma form.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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
Redigera och kör kod