Навчіть модель CNN для тексту
Чудово, ви визначили клас TextClassificationCNN. Тепер PyBooks потрібно натренувати модель, щоб підвищити точність визначення тональності відгуків на книжки.
Для вас вже імпортовано такі пакети:
torch, torch.nn як nn, torch.nn.functional як F, torch.optim як optim.
Екземпляр TextClassificationCNN() з аргументами vocab_size та embed_dim також завантажено й збережено як model.
Ця вправа є частиною курсу
Глибоке навчання для тексту з PyTorch
Інструкції до вправи
- Визначте функцію втрат для бінарної класифікації та збережіть її як
criterion. - На початку циклу навчання обнуліть градієнти.
- Наприкінці циклу оновіть параметри.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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!')