Zacznij terazZacznij za darmo

Sieć GRU

Obok LSTM popularnym wariantem rekurencyjnej sieci neuronowej jest jednostka bramkowana GRU (Gated Recurrent Unit). Jej zaletą jest prostota: komórki GRU wymagają mniej obliczeń niż komórki LSTM, często dorównując im jednak pod względem wydajności.

Dostarczony kod zawiera wcześniej zdefiniowany model RNN. Twoim zadaniem jest jego dostosowanie tak, aby uzyskać sieć GRU zamiast RNN. Biblioteka torch oraz torch.nn as nn zostały już zaimportowane.

To ćwiczenie jest częścią kursu

Głębokie uczenie z PyTorch – poziom średnio zaawansowany

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaktualizuj definicję modelu RNN, aby otrzymać sieć GRU; przypisz warstwę GRU do self.gru.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

class Net(nn.Module):
    def __init__(self):
        super().__init__()
        # Define RNN layer
        self.rnn = nn.RNN(
            input_size=1,
            hidden_size=32,
            num_layers=2,
            batch_first=True,
        )
        self.fc = nn.Linear(32, 1)

    def forward(self, x):
        h0 = torch.zeros(2, x.size(0), 32)
        out, _ = self.rnn(x, h0)  
        out = self.fc(out[:, -1, :])
        return out
Edytuj i uruchom kod