Construa um modelo de CNN para texto
A PyBooks construiu com sucesso um mecanismo de recomendação de livros. A próxima tarefa é implementar um modelo de análise de sentimento para entender as avaliações dos usuários e obter insights sobre preferências de leitura.
Você vai usar um modelo de Rede Neural Convolucional (CNN) para classificar dados de texto (resenhas de livros) com base no sentimento.
torch, torch.nn como nn e torch.nn.functional como F já foram carregados para você.
Este exercício faz parte do curso
Deep Learning para Texto com PyTorch
Instruções do exercício
- Inicialize a camada de embedding no método
__init__(). - Aplique a camada convolucional
self.convao textoembeddeddentro do métodoforward(). - Aplique a ativação ReLU a essa camada dentro do método
forward().
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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)