ПочатиПочніть безкоштовно

Навчіть модель 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!')
Редагувати та запускати код