Zacznij terazZacznij za darmo

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

Zobacz kurs

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ści chars.

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(____, ____, ____)
Edytuj i uruchom kod