Bygga en generator och diskriminator
På PyBooks har du fått i uppgift att arbeta med en automatisk textgenerator som ska hjälpa skribenter att övervinna skrivkramp. Med hjälp av GAN:er, eller Generative Adversarial Networks, tror du att det går att skapa ett system där ett nätverk – generatorn – skapar ny text, medan det andra nätverket – diskriminatorn – bedömer om texten är trovärdig. För att komma igång behöver du initialisera både ett generator- och ett diskriminatornätverk. Dessa nätverk tränas sedan mot varandra för att producera ny, övertygande text.
Följande har importerats åt dig: torch, torch.nn as nn.
Den här övningen är en del av kursen
Djupinlärning för text med PyTorch
Övningsinstruktioner
- Definiera klassen
Generatormed ett linjärt lager för sekventiella data och en sigmoid-aktiveringsfunktion. - Skicka indata genom den definierade modellen i
forward()-metoden i klassenGenerator. - Definiera en klass
Discriminatormed samma lager och aktiveringsfunktion, och var noga med att definiera dimensionerna korrekt.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)