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
Oefeninstructies
- Definieer de klasse
Generatormet een lineaire laag voor sequentiële data en een sigmoid-activatiefunctie. - Geef de invoer door het gedefinieerde model in de methode
forward()van de klasseGenerator. - Definieer een klasse
Discriminatormet 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)