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
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