Začněte nyníZačněte zdarma

Ztrátová funkce generátoru

Než začneš trénovat GAN, musíš definovat ztrátové funkce pro generátor i diskriminátor. Začneme generátorem.

Generátor má za úkol vytvářet takové falešné obrázky, které přesvědčí diskriminátor, aby je označil jako skutečné. Generátor tedy utrpí ztrátu, pokud diskriminátor jím vytvořené obrázky označí jako falešné (label 0).

Definuj funkci gen_loss(), která vypočítá ztrátu generátoru. Přijímá čtyři argumenty:

  • gen, model generátoru
  • disc, model diskriminátoru
  • num_images, počet obrázků v dávce
  • z_dim, velikost vstupního náhodného šumu

Toto cvičení je součástí kurzu

Deep Learning pro obrázky s PyTorchem

Zobrazit kurz

Pokyny k cvičení

  • Vygeneruj náhodný šum o tvaru num_images × z_dim a ulož ho do proměnné noise.
  • Pomocí generátoru vytvoř z proměnné noise falešný obrázek a ulož ho do proměnné fake.
  • Získej predikci diskriminátoru pro vygenerovaný falešný obrázek.
  • Vypočítej ztrátu generátoru voláním funkce criterion na predikcích diskriminátoru a tenzoru jedniček stejného tvaru.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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
Upravit a spustit kód