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
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!')