Bygg en CNN-modell för text
PyBooks har framgångsrikt byggt en bokrekommendationsmotor. Nästa uppgift är att implementera en sentimentanalysmodell för att förstå användarrecensioner och få insikt i bokpreferenser.
Du ska använda en CNN-modell (Convolutional Neural Network) för att klassificera textdata (bokrecensioner) utifrån deras sentiment.
torch, torch.nn as nn och torch.nn.functional as F har redan importerats.
Den här övningen är en del av kursen
Djupinlärning för text med PyTorch
Övningsinstruktioner
- Initiera inbäddningslagret (embedding layer) i metoden
__init__(). - Applicera det konvolutionella lagret
self.convpå den inbäddade textenembeddedi metodenforward(). - Applicera ReLU-aktiveringen på detta lager i metoden
forward().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)