构建用于文本生成的 RNN 模型
在 PyBooks,您被指派开发一个能够进行文本生成的算法。该项目的目标是实现书名的自动补全。为启动项目,您决定先用循环神经网络(RNN)做实验。这样,您可以先理解 RNN 的细节,再转向更复杂的模型。
以下内容已为您导入:torch,以及将 torch.nn 导入为 nn。
变量 data 已用 Lewis Carroll 的《爱丽丝梦游仙境》节选完成初始化。
本练习是课程的一部分
使用 PyTorch 的文本深度学习
练习说明
- 在
RNNmodel类中加入一个 RNN 层和一个线性层。 - 实例化该 RNN 模型:输入大小为
chars的长度,隐藏层大小为 16,输出大小为chars的长度。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Include an RNN layer and linear layer in RNNmodel class
class RNNmodel(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(RNNmodel, self).__init__()
self.hidden_size = hidden_size
self.rnn = nn.____(input_size, hidden_size, batch_first=True)
self.fc = nn.____(hidden_size, output_size)
def forward(self, x):
h0 = torch.zeros(1, x.size(0), self.hidden_size)
out, _ = self.rnn(x, h0)
out = self.fc(out[:, -1, :])
return out
# Instantiate the RNN model
model = RNNmodel(____, ____, ____)