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
Oefeninstructies
- Initialiseer de embeddinglaag in de
__init__()-methode. - Pas de convolutielaag
self.convtoe op deembeddedtekst binnen deforward()-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)