EmpezarEmpieza gratis

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

Ver curso

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!')
Editar y ejecutar código