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
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.
forwardmetodunda 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()