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

PyTorch ile Metin için Deep Learning

kursunun bir parçasıdır
Kursu Görüntüle

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ı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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