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

Trénování GAN modelu

Tvůj tým v PyBooks udělal velký pokrok při budování generátoru textu pomocí generativní adversariální sítě (GAN). Úspěšně jsi definoval/a sítě generátoru a diskriminátoru. Teď je čas je natrénovat. Posledním krokem je vygenerovat falešná data a porovnat je s reálnými daty, abychom zjistili, jak dobře se tvůj GAN naučil. Jako vstup jsme použili tenzory a výstup by se měl co nejvíce podobat vstupním tenzorům. Tým v PyBooks pak může tato syntetická data využít pro analýzu textu, protože vztahy mezi příznaky budou odpovídat vztahům v textových datech.

Generátor a diskriminátor byly inicializovány a uloženy do proměnných generator a discriminator.

V cvičení byly inicializovány následující proměnné:

  • seq_length = 5: délka každé syntetické datové sekvence
  • num_sequences = 100: celkový počet vygenerovaných sekvencí
  • num_epochs = 50: počet úplných průchodů datovou sadou
  • print_every = 10: frekvence výstupu – výsledky se zobrazují každých 10 epoch

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

Deep Learning for Text with PyTorch

Zobrazit kurz

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

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

# Define the loss function and optimizer
criterion = nn.____()
optimizer_gen = ____(generator.parameters(), lr=0.001)
optimizer_disc = ____(discriminator.parameters(), lr=0.001)

for epoch in range(num_epochs):
    for real_data in data:
      	# Unsqueezing real_data and prevent gradient recalculations
        real_data = real_data.____(0)
        noise = torch.rand((1, seq_length))
        fake_data = generator(noise)
        disc_real = discriminator(real_data)
        disc_fake = discriminator(fake_data.____())
        loss_disc = criterion(disc_real, torch.ones_like(disc_real)) + criterion(disc_fake, torch.zeros_like(disc_fake))
        optimizer_disc.zero_grad()
        loss_disc.backward()
        optimizer_disc.step()
Upravit a spustit kód