LoslegenKostenlos loslegen

Diskriminator

Nachdem der Generator klar ist, kommt als nächster Schritt beim Aufbau eines GAN der Diskriminator dran. Es nimmt die Ausgabe des Generators als Input und macht eine binäre Vorhersage: Ist der Input generiert oder echt?

Du findest „ torch.nn “ bereits importiert unter „ nn “. Du kannst auch auf eine benutzerdefinierte Funktion „ disc_block() “ zugreifen, die einen Block einer linearen Schicht gefolgt von einer LeakyReLU-Aktivierung zurückgibt. Du wirst es als Baustein für den Diskriminator verwenden.

def disc_block(in_dim, out_dim):

    return nn.Sequential(

        nn.Linear(in_dim, out_dim),

        nn.LeakyReLU(0.2)

    )

Diese Übung ist Teil des Kurses

Deep Learning für Bilder mit PyTorch

Kurs anzeigen

Anleitung zur Übung

  • Füge den letzten Diskriminatorblock zum Modell hinzu, mit der richtigen Eingabegröße und der Ausgabe „ 256 “.
  • Nach dem letzten Diskriminatorblock füge eine lineare Schicht hinzu, um die Ausgabe auf die Größe von „ 1 “ abzubilden.
  • Definiere die Methode „ forward() “, um das Eingabebild durch den sequenziellen Block zu leiten, der in „ __init__() “ definiert ist.

Interaktive Übung

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

class Discriminator(nn.Module):
    def __init__(self, im_dim):
        super(Discriminator, self).__init__()
        self.disc = nn.Sequential(
            disc_block(im_dim, 1024),
            disc_block(1024, 512),
            # Define last discriminator block
            ____,
            # Add a linear layer
            ____,
        )

    def forward(self, x):
        # Define the forward method
        ____
Code bearbeiten und ausführen