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

Trénovací smyčka

A je to tady – veškerá tvoje práce na definování architektur modelu a ztrátových funkcí teď přijde ke slovu: čas trénovat! Tvým úkolem je implementovat a spustit trénovací smyčku GAN. Poznámka: po první dávce dat je vložen příkaz break, aby nedocházelo k příliš dlouhému běhu.

Oba optimizéry, disc_opt a gen_opt, jsou inicializovány jako optimizéry Adam(). K dispozici máš také funkce pro výpočet ztrát, které jsi definoval/a dříve: gen_loss() a disc_loss(). Připraven je i dataloader.

Připomeň si:

  • Argumenty disc_loss() jsou: gen, disc, real, cur_batch_size, z_dim.
  • Argumenty gen_loss() jsou: gen, disc, cur_batch_size, z_dim.

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

Deep Learning pro obrázky s PyTorchem

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej ztrátu diskriminátoru pomocí disc_loss() – předej jí generátor, diskriminátor, vzorek reálných obrázků, aktuální velikost dávky a velikost šumu 16 (v tomto pořadí) a výsledek ulož do d_loss.
  • Vypočítej gradienty pomocí d_loss.
  • Vypočítej ztrátu generátoru pomocí gen_loss() – předej jí generátor, diskriminátor, aktuální velikost dávky a velikost šumu 16 (v tomto pořadí) a výsledek ulož do g_loss.
  • Vypočítej gradienty pomocí g_loss.

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

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

for epoch in range(1):
    for real in dataloader:
        cur_batch_size = len(real)
        
        disc_opt.zero_grad()
        # Calculate discriminator loss
        d_loss = ____
        # Compute gradients
        ____
        disc_opt.step()

        gen_opt.zero_grad()
        # Calculate generator loss
        g_loss = ____
        # Compute generator gradients
        ____
        gen_opt.step()

        print(f"Generator loss: {g_loss}")
        print(f"Discriminator loss: {d_loss}")
        break
Upravit a spustit kód