IniziaInizia gratis

Allena un modello CNN per il testo

Ottimo lavoro nel definire la classe TextClassificationCNN. Ora PyBooks deve addestrare il modello per ottimizzarlo nell'analisi del sentiment delle recensioni dei libri.

I seguenti pacchetti sono già stati importati per te: torch, torch.nn come nn, torch.nn.functional come F, torch.optim come optim.

È stata anche creata un'istanza di TextClassificationCNN() con gli argomenti vocab_size ed embed_dim, caricata e salvata come model.

Questo esercizio fa parte del corso

Deep Learning per il testo con PyTorch

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci una funzione di perdita usata per la classificazione binaria e salvala come criterion.
  • Azzera i gradienti all'inizio del ciclo di training.
  • Aggiorna i parametri alla fine del ciclo.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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!')
Modifica ed esegui il codice