Мережа GRU
Поряд із LSTM, ще одним популярним різновидом рекурентних нейронних мереж є Gated Recurrent Unit, або GRU. Її привабливість — у простоті: комірки GRU потребують менше обчислень, ніж комірки LSTM, водночас часто не поступаючись їм за якістю.
Наданий вам код — це визначення моделі RNN, яке ви писали раніше. Ваше завдання — адаптувати його так, щоб замість цього створити мережу GRU. torch і torch.nn as nn вже імпортовано.
Ця вправа є частиною курсу
Середній рівень Deep Learning з PyTorch
Інструкції до вправи
- Оновіть визначення моделі RNN, щоб отримати мережу GRU; присвойте шар GRU до
self.gru.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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