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ırEgzersiz 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ı 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()