GRU 网络
除了 LSTM,另一种常见的循环神经网络变体是门控循环单元(Gated Recurrent Unit,GRU)。它的优势在于结构更简单:GRU 单元的计算量少于 LSTM 单元,但在很多情况下性能相当。
提供给您的代码是之前编写的 RNN 模型定义。您的任务是将其改写为 GRU 网络。torch 和 torch.nn as nn 已为您导入。
本练习是课程的一部分
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