Geração de texto usando RNN - Treinamento e Geração
A equipe da PyBooks agora quer que você treine e teste o modelo RNN, projetado para prever o próximo caractere na sequência com base no input fornecido, para autocompletar nomes de livros. Este projeto vai ajudar a equipe a desenvolver ainda mais modelos para completação de texto.
A instância model da classe RNNmodel já está carregada para você. A variável data foi pré-processada e codificada como uma sequência.
As variáveis inputs e targets já estão pré-carregadas para você.
Este exercício faz parte do curso
Deep Learning para Texto com PyTorch
Instruções do exercício
- Instancie a função de loss que será usada para calcular o erro do nosso modelo.
- Instancie o otimizador a partir do módulo de otimização do PyTorch.
- Execute o processo de treinamento do modelo definindo-o para o modo train e zerando os gradientes antes de realizar uma etapa de otimização.
- Após o treinamento, coloque o modelo em modo de avaliação para testá-lo em um input de exemplo.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Instantiate the loss function
criterion = nn.____()
# Instantiate the optimizer
optimizer = torch.optim.____(model.parameters(), lr=0.01)
# Train the model
for epoch in range(100):
model.____()
outputs = model(inputs)
loss = criterion(outputs, targets)
optimizer.____()
loss.backward()
optimizer.step()
if (epoch+1) % 10 == 0:
print(f'Epoch {epoch+1}/100, Loss: {loss.item()}')
# Test the model
model.____()
test_input = char_to_ix['r']
test_input = nn.functional.one_hot(torch.tensor(test_input).view(-1, 1), num_classes=len(chars)).float()
predicted_output = model(test_input)
predicted_char_ix = torch.argmax(predicted_output, 1).item()
print(f"Test Input: 'r', Predicted Output: '{ix_to_char[predicted_char_ix]}'")