LoslegenKostenlos loslegen

Ein GAN-Modell trainieren

Dein Team bei PyBooks hat gute Fortschritte beim Aufbau des Textgenerators mit einem Generative Adversarial Network (GAN) gemacht. Generator- und Discriminator-Netze sind erfolgreich definiert. Jetzt ist es Zeit, sie zu trainieren. Der letzte Schritt besteht darin, einige Fake-Daten zu erzeugen und sie mit echten Daten zu vergleichen, um zu sehen, wie gut dein GAN gelernt hat. Wir haben Tensoren als Eingabe verwendet, und die Ausgabe soll den Eingabetensoren ähneln. Das Team bei PyBooks kann diese synthetischen Daten dann für die Textanalyse nutzen, da die Merkmale die gleichen Beziehungen wie Textdaten aufweisen.

Der Generator und der Discriminator wurden initialisiert und unter generator bzw. discriminator gespeichert.

In der Übung wurden folgende Variablen initialisiert:

  • seq_length = 5: Länge jeder synthetischen Datensequenz
  • num_sequences = 100: Gesamtzahl der generierten Sequenzen
  • num_epochs = 50: Anzahl der vollständigen Durchläufe durch den Datensatz
  • print_every = 10: Ausgabefrequenz, zeigt alle 10 Epochen Ergebnisse an

Diese Übung ist Teil des Kurses

Deep Learning für Text mit PyTorch

Kurs anzeigen

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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()
Code bearbeiten und ausführen