Aan de slagGa gratis aan de slag

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

Cursus bekijken

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!')
Code bewerken en uitvoeren