LoslegenKostenlos loslegen

Generator

Ein GAN-Generator nimmt einen zufälligen Rauschvektor als Input und macht daraus ein generiertes Bild. Damit die Architektur besser wiederverwendet werden kann, gibst du sowohl die Eingabe- als auch die Ausgabeformen als Parameter an das Modell weiter. So kannst du dasselbe Modell mit unterschiedlichen Eingangsrauschen und Bildern in verschiedenen Formen verwenden.

Du findest „ torch.nn “ bereits importiert unter „ nn “. Du kannst auch auf eine benutzerdefinierte Funktion „ gen_block() “ zugreifen, die einen Block mit linearer Schicht, Batch-Normalisierung und ReLU-Aktivierung zurückgibt. Du wirst es als Baustein für den Generator verwenden.

def gen_block(in_dim, out_dim):

    return nn.Sequential(

        nn.Linear(in_dim, out_dim),

        nn.BatchNorm1d(out_dim),

        nn.ReLU(inplace=True)

    )

Diese Übung ist Teil des Kurses

Deep Learning für Bilder mit PyTorch

Kurs anzeigen

Anleitung zur Übung

  • Definier „ self.generator “ als sequentielles Modell.
  • Füge nach dem letzten „ gen_block “ eine lineare Schicht mit der passenden Eingangsgröße und der Ausgangsgröße „ out_dim “ hinzu.
  • Füge nach der linearen Schicht eine sigmoidale Aktivierung hinzu.
  • In der Methode „ forward() “ gibst du die Eingabe des Modells über „ self.generator “ weiter.

Interaktive Übung

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

class Generator(nn.Module):
    def __init__(self, in_dim, out_dim):
        super(Generator, self).__init__()
        # Define generator block
        self.generator = ____(
            gen_block(in_dim, 256),
            gen_block(256, 512),
            gen_block(512, 1024),
          	# Add linear layer
            ____
            # Add activation
            ____
        )

    def forward(self, x):
      	# Pass input through generator
        return ____
Code bearbeiten und ausführen