Створення моделі RNN для генерування тексту
У PyBooks вам доручили розробити алгоритм, який уміє генерувати текст. Проєкт передбачає авто-доповнення назв книжок. Щоб розпочати, ви вирішили поекспериментувати з рекурентною нейронною мережею (RNN). Так ви зрозумієте тонкощі RNN перед тим, як переходити до складніших моделей.
Для вас уже імпортовано: torch, torch.nn як nn.
Змінну data ініціалізовано уривком із «Alice's Adventures in Wonderland» Льюїса Керрола.
Ця вправа є частиною курсу
Глибоке навчання для тексту з PyTorch
Інструкції до вправи
- Додайте шар RNN і лінійний шар у клас
RNNmodel. - Створіть екземпляр моделі 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(____, ____, ____)