CommencerCommencer 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 packages 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 également été créée et enregistrée sous le nom model.

Cet exercice fait partie du cours

Deep Learning pour le texte avec PyTorch

Afficher le cours

Instructions

  • Définissez une fonction de perte utilisée pour la classification binaire et enregistrez-la dans 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 cet exemple de code.

# 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