Začněte nyníZačněte zdarma

Vytvoření transformer modelu

V PyBooks potřebuje doporučovací systém, na kterém pracuješ, kvalitnější nástroj pro porozumění sentimentu uživatelských recenzí. Věříš, že transformery – moderní architektura na špičkové úrovni – ti s tím pomůžou. Rozhodneš se proto postavit transformer model, který dokáže zakódovat sentiment recenzí a nastartovat celý projekt.

Následující balíčky už jsou naimportovány: torch, nn, optim.

Vstupní data obsahují věty jako: "I love this product", "This is terrible", "Could be better" … a jejich odpovídající binární štítky sentimentu, například: 1, 0, 0, ...

Vstupní data jsou rozdělena a převedena na embeddingy v těchto proměnných: train_sentences, train_labels ,test_sentences,test_labels,token_embeddings

Toto cvičení je součástí kurzu

Deep Learning for Text with PyTorch

Zobrazit kurz

Pokyny k cvičení

  • Inicializuj transformer enkodér.
  • Definuj plně propojenou vrstvu na základě počtu tříd sentimentu.
  • V metodě forward předej vstup přes transformer enkodér a následně přes lineární vrstvu.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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()
Upravit a spustit kód