BaşlayınÜcretsiz başlayın

Bir transformer modeli oluşturma

PyBooks'ta üzerinde çalıştığın öneri motorunun, kullanıcı yorumlarının duyarlılığını daha iyi anlamaya ihtiyacı var. Güncel mimarilerden olan transformer'ların bu hedefe ulaşmaya yardımcı olacağını düşünüyorsun. Projeyi başlatmak için yorumlardaki duyarlılıkları kodlayabilecek bir transformer modeli kurmaya karar verdin.

Senin için şu paketler içe aktarıldı: torch, nn, optim.

Girdi verisi şu tür cümleleri içeriyor: "I love this product", "This is terrible", "Could be better" … ve bunlara karşılık gelen ikili duyarlılık etiketleri: 1, 0, 0, ...

Girdi verisi bölünüp gömme vektörlerine dönüştürülerek şu değişkenlerde tutuluyor: train_sentences, train_labels ,test_sentences,test_labels,token_embeddings

Bu egzersiz, kursun bir parçasıdır

PyTorch ile Metin için Deep Learning

Kursa Göz Atın

Egzersiz talimatları

  • Transformer kod çözücüyü başlat.
  • Duyarlılık sınıfı sayısına göre tam bağlı katmanı tanımla.
  • forward metodunda girdiyi önce transformer kod çözücüden, ardından doğrusal katmandan geçir.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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()
Kodu Düzenle ve Çalıştır