LoslegenKostenlos loslegen

Generatorverlust

Bevor du dein GAN trainieren kannst, musst du Verlustfunktionen für den Generator und den Diskriminator festlegen. Du fängst mit dem ersten an.

Erinnere dich daran, dass der Generator solche falschen Bilder machen soll, dass der Unterscheider sie für echt hält. Deshalb hat der Generator einen Verlust, wenn die Bilder, die er erzeugt hat, vom Diskriminator als gefälscht eingestuft werden (Label 0).

Definiere die Funktion „ gen_loss() “, die den Generatorverlust berechnet. Es braucht vier Argumente:

  • gen, das Generatormodell
  • disc, das Diskriminator-Modell
  • num_images, die Anzahl der Bilder im Stapel
  • z_dim, die Größe des eingegebenen Zufallsrauschens

Diese Übung ist Teil des Kurses

Deep Learning für Bilder mit PyTorch

Kurs anzeigen

Anleitung zur Übung

  • Erzeuge zufälliges Rauschen mit der Form „ num_images “ über „ z_dim “ und weise es „ noise “ zu.
  • Mach mit dem Generator ein gefälschtes Bild von noise und schick es an fake.
  • Hol dir die Vorhersage des Diskriminators für das gefälschte Bild.
  • Berechne den Verlust der Generatoren, indem du „ criterion “ auf die Vorhersagen des Diskriminators und einen Tensor mit Einsen derselben Form anwendest.

Interaktive Übung

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

def gen_loss(gen, disc, criterion, num_images, z_dim):
    # Define random noise
    noise = ____(num_images, z_dim)
    # Generate fake image
    fake = ____
    # Get discriminator's prediction on the fake image
    disc_pred = ____
    # Compute generator loss
    criterion = nn.BCEWithLogitsLoss()
    gen_loss = ____(____, ____)
    return gen_loss
Code bearbeiten und ausführen