CommencezCommencez gratuitement

Entraîner un modèle CNN pour le texte

Bravo pour la définition de la classe TextClassificationCNN. PyBooks doit maintenant entraîner le modèle pour l'optimiser en vue d'une analyse de sentiment précise des critiques de livres.

Les modules suivants ont été importés pour vous : torch, torch.nn sous le nom nn, torch.nn.functional sous le nom F, torch.optim sous le nom optim.

Une instance de TextClassificationCNN() avec les arguments vocab_size et embed_dim a aussi été chargée et enregistrée sous le nom model.

Cette activité fait partie du cours

Apprentissage profond pour le texte avec PyTorch

Voir le cours

Instructions de l’exercice

  • Définissez une fonction de perte utilisée pour la classification binaire et enregistrez-la sous criterion.
  • Remettez les gradients à zéro au début de la boucle d'entraînement.
  • Mettez à jour les paramètres à la fin de la boucle.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Define the loss function
criterion = nn.____()
optimizer = optim.SGD(model.parameters(), lr=0.1)

for epoch in range(10):
    for sentence, label in data:     
        # Clear the gradients
        model.____()
        sentence = torch.LongTensor([word_to_ix.get(w, 0) for w in sentence]).unsqueeze(0) 
        label = torch.LongTensor([int(label)])
        outputs = model(sentence)
        loss = criterion(outputs, label)
        loss.backward()
        # Update the parameters
        ____.____()
print('Training complete!')
Modifier et exécuter le code