Antrenează un model CNN pentru text
Bine ai făcut definind clasa TextClassificationCNN. PyBooks trebuie acum să antreneze modelul pentru a-l optimiza în vederea analizei de sentiment a recenziilor de cărți.
Următoarele pachete au fost deja importate pentru tine:
torch, torch.nn ca nn, torch.nn.functional ca F, torch.optim ca optim.
O instanță a clasei TextClassificationCNN() cu argumentele vocab_size și embed_dim a fost, de asemenea, creată și salvată ca model.
Acest exercițiu face parte din cursul
Deep Learning pentru text cu PyTorch
Instrucțiuni pentru exercițiu
- Definește o funcție de pierdere folosită pentru clasificarea binară și salveaz-o ca
criterion. - Resetează gradienții la zero la începutul buclei de antrenament.
- Actualizează parametrii la sfârșitul buclei.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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!')