НачатьНачать бесплатно

Построение модели CNN для текста

Команда PyBooks успешно создала систему рекомендаций книг. Следующая задача — реализовать модель анализа тональности, которая поможет понять отзывы пользователей и выявить их предпочтения в чтении.

Вы будете использовать свёрточную нейронную сеть (CNN) для классификации текстовых данных (отзывов о книгах) по тональности.

Библиотеки torch, torch.nn как nn и torch.nn.functional как F уже загружены.

Это упражнение является частью курса

Глубокое обучение для работы с текстом на PyTorch

Посмотреть курс

Инструкции к упражнению

  • Инициализируйте слой эмбеддинга (векторного представления) в методе __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)
Редактировать и запускать код