Tworzenie modelu RNN do generowania tekstu
W PyBooks masz za zadanie opracować algorytm do generowania tekstu. Projekt dotyczy automatycznego uzupełniania tytułów książek. Aby go rozpocząć, postanawiasz poeksperymentować z rekurencyjną siecią neuronową (RNN). Dzięki temu lepiej poznasz specyfikę RNN-ów, zanim przejdziesz do bardziej złożonych modeli.
Następujące elementy zostały już zaimportowane: torch, torch.nn jako nn.
Zmienna data została zainicjowana fragmentem książki Alicja w Krainie Czarów Lewisa Carrolla.
To ćwiczenie jest częścią kursu
Uczenie głębokie dla tekstu z PyTorch
Instrukcje do ćwiczenia
- Dodaj warstwę RNN i warstwę liniową do klasy
RNNmodel. - Utwórz instancję modelu RNN, podając rozmiar wejścia równy długości
chars, rozmiar ukryty równy 16 oraz rozmiar wyjścia równy długościchars.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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(____, ____, ____)