Train een CNN-model voor tekst
Goed gedaan met het definiëren van de klasse TextClassificationCNN. PyBooks moet nu het model trainen om het te optimaliseren voor nauwkeurige sentimentsanalyse van boekrecensies.
De volgende pakketten zijn alvast voor je geïmporteerd:
torch, torch.nn als nn, torch.nn.functional als F, torch.optim als optim.
Er is ook een instantie van TextClassificationCNN() met de argumenten vocab_size en embed_dim geladen en opgeslagen als model.
Deze oefening maakt deel uit van de cursus
Deep Learning voor tekst met PyTorch
Oefeninstructies
- Definieer een verliesfunctie voor binaire classificatie en sla die op als
criterion. - Zet aan het begin van de trainingslus de gradiënten op nul.
- Werk aan het einde van de lus de parameters bij.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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!')