GRU 網路
除了 LSTM 之外,另一個常見的循環神經網路變體是 Gated Recurrent Unit(GRU)。它的優點在於設計更簡潔:GRU 單元的計算量比 LSTM 單元更少,效能卻常常能相當。
你拿到的程式碼是先前你撰寫的 RNN 模型定義。你的任務是將它改寫為 GRU 網路。torch 與 torch.nn as nn 已經為你匯入。
本練習屬於課程
Intermediate Deep Learning with 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