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é sekvencenum_sequences = 100: celkový počet vygenerovaných sekvencínum_epochs = 50: počet úplných průchodů datovou sadouprint_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
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()