Criando um modelo RNN para geração de texto
Na PyBooks, você recebeu a tarefa de desenvolver um algoritmo que faça geração de texto. O projeto envolve a autocompletar nomes de livros. Para dar o pontapé inicial, você decide experimentar uma Recurrent Neural Network (RNN). Assim, você entende as nuances das RNNs antes de partir para modelos mais complexos.
Já foram importados para você: torch, torch.nn como nn.
A variável data foi inicializada com um trecho de Alice's Adventures in Wonderland, de Lewis Carroll.
Este exercício faz parte do curso
Deep Learning para Texto com PyTorch
Instruções do exercício
- Inclua uma camada RNN e uma camada linear na classe
RNNmodel. - Instancie o modelo RNN com tamanho de entrada igual ao comprimento de
chars, tamanho do estado oculto de 16 e tamanho de saída igual ao comprimento dechars.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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(____, ____, ____)