Création d’un modèle RNN pour la génération de texte
Chez PyBooks, vous avez été chargé de développer un algorithme capable de générer du texte. Le projet porte sur l’auto-complétion de titres de livres. Pour lancer ce projet, vous décidez d’expérimenter avec un RNN (Recurrent Neural Network). Cela vous permettra de comprendre 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.
Cet exercice fait partie du cours
Deep Learning pour le texte avec PyTorch
Instructions
- Incluez une couche RNN et une couche linéaire dans la classe
RNNmodel. - Instanciez 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 dechars.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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(____, ____, ____)