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
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!')