Aan de slagGa gratis aan de slag

Bouw een CNN-model voor tekst

PyBooks heeft met succes een boekenaanbevelingssysteem gebouwd. Hun volgende taak is het implementeren van een sentimentanalysemodel om gebruikersrecensies te begrijpen en inzicht te krijgen in boekvoorkeuren.

Je gaat een Convolutional Neural Network (CNN) gebruiken om tekstgegevens (boekrecensies) te classificeren op basis van hun sentiment.

torch, torch.nn als nn, en torch.nn.functional als F zijn alvast voor je geladen.

Deze oefening maakt deel uit van de cursus

Deep Learning voor tekst met PyTorch

Cursus bekijken

Oefeninstructies

  • Initialiseer de embeddinglaag in de __init__()-methode.
  • Pas de convolutielaag self.conv toe op de embedded tekst binnen de forward()-methode.
  • Pas de ReLU-activatie toe op deze laag binnen de forward()-methode.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren