CommencezCommencez gratuitement

Créer un modèle RNN pour la génération de texte

Chez PyBooks, on vous a confié la création d'un algorithme capable de générer du texte. Le projet consiste à proposer l'autocomplétion de titres de livres. Pour lancer le projet, vous décidez d'expérimenter un réseau de neurones récurrent (RNN). Ainsi, vous pourrez saisir les subtilités des RNN avant de passer à des modèles plus complexes.

Les éléments suivants ont été importés pour vous : torch, torch.nn sous le nom nn.

La variable data a été initialisée avec un extrait d'Alice au pays des merveilles de Lewis Carroll.

Cette activité fait partie du cours

Apprentissage profond pour le texte avec PyTorch

Voir le cours

Instructions de l’exercice

  • Inclure une couche RNN et une couche linéaire dans la classe RNNmodel.
  • Instancier le modèle RNN avec une taille d'entrée égale à la longueur de chars, une taille cachée de 16 et une taille de sortie égale à la longueur de chars.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Include an RNN layer and linear layer in RNNmodel class
class RNNmodel(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        super(RNNmodel, self).__init__()
        self.hidden_size = hidden_size
        self.rnn = nn.____(input_size, hidden_size, batch_first=True)
        self.fc = nn.____(hidden_size, output_size)

    def forward(self, x):
      h0 = torch.zeros(1, x.size(0), self.hidden_size)
      out, _ = self.rnn(x, h0)  
      out = self.fc(out[:, -1, :])  
      return out

# Instantiate the RNN model
model = RNNmodel(____, ____, ____)
Modifier et exécuter le code