Construiește un model CNN pentru text
PyBooks a construit cu succes un motor de recomandare de cărți. Următoarea sarcină este să implementeze un model de analiză a sentimentelor, pentru a înțelege recenziile utilizatorilor și a obține informații despre preferințele de lectură.
Vei folosi un model de rețea neuronală convoluțională (CNN) pentru a clasifica date text (recenzii de cărți) în funcție de sentimentul exprimat.
torch, torch.nn cu aliasul nn și torch.nn.functional cu aliasul F au fost deja importate.
Acest exercițiu face parte din cursul
Deep Learning pentru text cu PyTorch
Instrucțiuni pentru exercițiu
- Inițializează stratul de încorporare (embedding) în metoda
__init__(). - Aplică stratul convoluțional
self.convtextuluiembeddedîn metodaforward(). - Aplică activarea ReLU acestui strat în metoda
forward().
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)