CommencerCommencer gratuitement

Génération de texte avec RNN - Entraînement et génération

L’équipe de PyBooks souhaite maintenant que vous entraîniez et testiez le modèle RNN, conçu pour prédire le caractère suivant dans une séquence à partir de l’entrée fournie, afin d’autocompléter des titres de livres. Ce projet aidera l’équipe à développer davantage des modèles de complétion de texte.

L’instance model de la classe RNNmodel est préchargée pour vous. La variable data a été prétraitée et encodée en séquence.

Les variables inputs et targets sont préchargées pour vous.

Cet exercice fait partie du cours

Deep Learning pour le texte avec PyTorch

Afficher le cours

Instructions

  • Instanciez la fonction de perte qui sera utilisée pour calculer l’erreur de notre modèle.
  • Instanciez l’optimiseur depuis le module d’optimisation de PyTorch.
  • Lancez l’entraînement du modèle en le passant en mode train et en réinitialisant les gradients avant d’effectuer une étape d’optimisation.
  • Après l’entraînement, passez le modèle en mode évaluation pour le tester sur un exemple d’entrée.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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]}'")
Modifier et exécuter le code