Aan de slagGa gratis aan de slag

Een generator en discriminator bouwen

Bij PyBooks krijg je de taak om te werken aan een automatische tekstgenerator die schrijvers helpt writer’s block te overwinnen. Met GANs (Generative Adversarial Networks) denk je een systeem te kunnen maken waarbij één netwerk, de generator, nieuwe tekst creëert, terwijl het andere netwerk, de discriminator, de echtheid beoordeelt. Hiervoor moet je zowel een generator- als een discriminatornetwerk initialiseren. Deze netwerken worden vervolgens tegen elkaar getraind om nieuwe, geloofwaardige tekst te genereren.

Het volgende is alvast voor je geïmporteerd: torch, torch.nn als nn.

Deze oefening maakt deel uit van de cursus

Deep Learning voor tekst met PyTorch

Cursus bekijken

Oefeninstructies

  • Definieer de klasse Generator met een lineaire laag voor sequentiële data en een sigmoid-activatiefunctie.
  • Geef de invoer door het gedefinieerde model in de methode forward() van de klasse Generator.
  • Definieer een klasse Discriminator met dezelfde lagen en activatiefunctie, en let goed op bij het definiëren van de dimensies.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Define the generator class
class Generator(nn.Module):
    def __init__(self):
        super().__init__()
        self.model = nn.____(nn.____(____), nn.____())
    def forward(self, x):
        return self.____(x)

# Define the discriminator networks
class Discriminator(nn.Module):
    def __init__(self):
        super().__init__()
        self.model = nn.____(nn.____(____), nn.____())
    def forward(self, x):
        return self.model(x)
Code bewerken en uitvoeren