GRU-Netz
Neben LSTMs ist eine weitere beliebte Variante rekurrenter neuronaler Netze die Gated Recurrent Unit oder GRU. Seine Attraktivität liegt in der Einfachheit: GRU-Zellen erfordern weniger Berechnungen als LSTM-Zellen und erreichen dabei oft die gleiche Leistung.
Der Code, den du erhältst, ist die RNN-Modelldefinition, die du zuvor programmiert hast. Deine Aufgabe ist es, sie so anzupassen, dass sie stattdessen ein GRU-Netz erzeugt. torch
und torch.nn as nn
wurden bereits für dich importiert.
Diese Übung ist Teil des Kurses
Deep Learning mit PyTorch für Fortgeschrittene
Anleitung zur Übung
- Aktualisiere die RNN-Modelldefinition, um ein GRU-Netz zu erhalten; weise die GRU-Schicht
self.gru
zu.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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