Antrenarea unui model GAN
Echipa ta de la PyBooks a făcut progrese bune în construirea generatorului de text folosind o Rețea Adversarială Generativă (GAN). Ați definit cu succes rețelele generator și discriminator. Acum e momentul să le antrenați. Ultimul pas este să generați câteva date false și să le comparați cu datele reale, pentru a vedea cât de bine a învățat GAN-ul. Am folosit tensori ca intrare, iar ieșirea va încerca să semene cu tensorii de intrare. Echipa PyBooks poate folosi apoi aceste date sintetice pentru analiza textului, deoarece caracteristicile vor avea aceleași relații ca datele text.
Generatorul și discriminatorul au fost inițializați și salvați în generator, respectiv discriminator.
Următoarele variabile au fost inițializate în exercițiu:
seq_length = 5: Lungimea fiecărei secvențe de date sinteticenum_sequences = 100: Numărul total de secvențe generatenum_epochs = 50: Numărul de treceri complete prin set de dateprint_every = 10: Frecvența de afișare a rezultatelor, la fiecare 10 epoci
Acest exercițiu face parte din cursul
Deep Learning pentru text cu PyTorch
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()