Побудуйте модель CNN для тексту
PyBooks успішно створила рушій рекомендацій книжок. Їхнє наступне завдання — реалізувати модель аналізу тональності, щоб зрозуміти відгуки користувачів і краще збагнути уподобання щодо книжок.
Ви використаєте модель згорткової нейронної мережі (CNN), щоб класифікувати текстові дані (книжкові відгуки) за тональністю.
torch, torch.nn як nn та torch.nn.functional як F уже завантажено для вас.
Ця вправа є частиною курсу
Глибоке навчання для тексту з PyTorch
Інструкції до вправи
- Ініціалізуйте шар вкладень (embedding) у методі
__init__(). - Застосуйте згортковий шар
self.convдо вбудованого представленняembeddedу межах методуforward(). - Застосуйте активацію ReLU до цього шару в методі
forward().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)