Een RNN-model maken voor tekstgeneratie
Bij PyBooks krijg je de taak om een algoritme te ontwikkelen dat tekst kan genereren. Het project draait om het automatisch aanvullen van boeknamen. Om dit project op gang te brengen, besluit je te experimenteren met een Recurrent Neural Network (RNN). Zo kun je de nuances van RNN’s begrijpen voordat je naar complexere modellen gaat.
Het volgende is alvast voor je geïmporteerd: torch, torch.nn als nn.
De variabele data is geïnitialiseerd met een fragment uit Alice's Adventures in Wonderland van Lewis Carroll.
Deze oefening maakt deel uit van de cursus
Deep Learning voor tekst met PyTorch
Oefeninstructies
- Voeg een RNN-laag en een lineaire laag toe in de klasse
RNNmodel. - Instantier het RNN-model met de invoergrootte als de lengte van
chars, een verborgen grootte van 16 en de uitvoergrootte als de lengte vanchars.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____, ____, ____)