Construye un modelo CNN para texto
PyBooks ha creado con éxito un motor de recomendación de libros. Su siguiente tarea es implementar un modelo de análisis de sentimiento para entender las reseñas de usuarios y obtener información sobre las preferencias de libros.
Usarás un modelo de Red Neuronal Convolucional (CNN) para clasificar datos de texto (reseñas de libros) según su sentimiento.
torch, torch.nn como nn, y torch.nn.functional como F ya se han cargado por ti.
Este ejercicio forma parte del curso
Deep Learning para texto con PyTorch
Instrucciones del ejercicio
- Inicializa la capa de incrustaciones en el método
__init__(). - Aplica la capa convolucional
self.conval textoembeddeddentro del métodoforward(). - Aplica la activación ReLU a esta capa dentro del método
forward().
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
class TextClassificationCNN(nn.Module):
def __init__(self, vocab_size, embed_dim):
super(TextClassificationCNN, self).__init__()
# Initialize the embedding layer
self.embedding = ____.____(vocab_size, embed_dim)
self.conv = nn.Conv1d(embed_dim, embed_dim, kernel_size=3, stride=1, padding=1)
self.fc = nn.Linear(embed_dim, 2)
def forward(self, text):
embedded = self.embedding(text).permute(0, 2, 1)
# Pass the embedded text through the convolutional layer and apply a ReLU
conved = ____.____(self.conv(____))
conved = conved.mean(dim=2)
return self.fc(conved)