ComeçarComece de graça

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

Ver curso

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]}'")
Editar e executar o código