ComeçarComece de graça

Treinar um modelo de CNN para texto

Muito bem por definir a classe TextClassificationCNN. Agora, a PyBooks precisa treinar o modelo para otimizá-lo e obter uma análise de sentimento precisa das resenhas de livros.

Os seguintes pacotes foram importados para você: torch, torch.nn como nn, torch.nn.functional como F, torch.optim como optim.

Uma instância de TextClassificationCNN() com os argumentos vocab_size e embed_dim também foi carregada e salva como model.

Este exercício faz parte do curso

Deep Learning para Texto com PyTorch

Ver curso

Instruções do exercício

  • Defina uma função de perda usada para classificação binária e salve como criterion.
  • Zere os gradientes no início do loop de treino.
  • Atualize os parâmetros ao final do loop.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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!')
Editar e executar o código