Entrena un modelo CNN para texto
Buen trabajo definiendo la clase TextClassificationCNN. Ahora PyBooks necesita entrenar el modelo para optimizarlo y lograr un análisis de sentimiento preciso de las reseñas de libros.
Se han importado por ti los siguientes paquetes:
torch, torch.nn como nn, torch.nn.functional como F, torch.optim como optim.
También se ha cargado una instancia de TextClassificationCNN() con los argumentos vocab_size y embed_dim, y se ha guardado como model.
Este ejercicio forma parte del curso
Deep Learning para texto con PyTorch
Instrucciones del ejercicio
- Define una función de pérdida para clasificación binaria y guárdala como
criterion. - Pon los gradientes a cero al inicio del bucle de entrenamiento.
- Actualiza los parámetros al final del bucle.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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!')