Создание модели RNN для генерации текста
В компании PyBooks вам поручили разработать алгоритм генерации текста. Проект предполагает автодополнение названий книг. Для начала вы решаете поэкспериментировать с рекуррентной нейронной сетью (RNN) — это поможет разобраться в особенностях RNN, прежде чем переходить к более сложным моделям.
Для вас уже импортированы: torch и torch.nn как nn.
Переменная data инициализирована отрывком из книги Льюиса Кэрролла «Приключения Алисы в Стране чудес».
Это упражнение является частью курса
Глубокое обучение для работы с текстом на 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(____, ____, ____)