Kom igångKom igång gratis

Skapa en transformermodell

På PyBooks behöver rekommendationsmotorn du arbetar med mer förfinade funktioner för att förstå känslan i användarrecensioner. Du tror att transformers – en toppmodern arkitektur – kan hjälpa dig att uppnå detta. Därför bestämmer du dig för att bygga en transformermodell som kan koda känslan i recensionerna och på så sätt komma igång med projektet.

Följande paket har importerats åt dig: torch, nn, optim.

Indata innehåller meningar som: "I love this product", "This is terrible", "Could be better" … och deras respektive binära sentimentetiketter, till exempel: 1, 0, 0, ...

Indata är uppdelad och konverterad till inbäddningar (embeddings) i följande variabler: train_sentences, train_labels, test_sentences, test_labels, token_embeddings

Den här övningen är en del av kursen

Djupinlärning för text med PyTorch

Visa kurs

Övningsinstruktioner

  • Initiera transformerenkodern.
  • Definiera det fully connected-lagret baserat på antalet sentimentklasser.
  • I forward-metoden skickar du indata genom transformerenkodern och sedan vidare genom det linjära lagret.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

class TransformerEncoder(nn.Module):
    def __init__(self, embed_size, heads, num_layers, dropout):
        super(TransformerEncoder, self).__init__()
        # Initialize the encoder 
        self.encoder = nn.____(
            nn.____(d_model=embed_size, nhead=heads),
            num_layers=num_layers)
        # Define the fully connected layer
        self.fc = nn.Linear(embed_size, ____)

    def forward(self, x):
        # Pass the input through the transformer encoder 
        x = self.____(x)
        x = x.mean(dim=1) 
        return self.fc(x)

model = TransformerEncoder(embed_size=512, heads=8, num_layers=3, dropout=0.5)
optimizer = optim.Adam(model.parameters(), lr=1e-3)
criterion = nn.CrossEntropyLoss()
Redigera och kör kod