Créer un générateur et un discriminateur
Chez PyBooks, on vous confie la création d'un générateur de texte automatique pour aider les auteurs à surmonter le blocage d'écriture. En utilisant des GAN (Generative Adversarial Networks), vous pensez pouvoir bâtir un système où un réseau, le générateur, produit du nouveau texte, tandis que l'autre réseau, le discriminateur, évalue son authenticité. Pour y arriver, vous devez initialiser à la fois un réseau générateur et un réseau discriminateur. Ces réseaux seront ensuite entraînés l'un contre l'autre pour créer du texte nouveau et crédible.
Les éléments suivants ont été importés pour vous : torch, torch.nn sous le nom nn.
Cette activité fait partie du cours
Apprentissage profond pour le texte avec PyTorch
Instructions de l’exercice
- Définissez la classe
Generatoravec une couche linéaire pour les données séquentielles et une fonction d'activation sigmoïde. - Faites passer l'entrée à travers le modèle défini dans la méthode
forward()de la classeGenerator. - Définissez une classe
Discriminatoravec les mêmes couches et la même fonction d'activation, en portant attention à la définition des dimensions.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)