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

Metin için bir LSTM modeli oluşturma

PyBooks'ta ekip, en son teknolojik gelişmelerden yararlanarak kullanıcı deneyimini sürekli iyileştirmeyi hedefliyor. Bu vizyon doğrultusunda sana kritik bir görev verdiler. Ekip, verideki karmaşık örüntüleri yakalama becerisiyle bilinen güçlü bir araç olan LSTM'in potansiyelini keşfetmeni istiyor. Aynı Newsgroup veri kümesiyle çalışıyorsun ve hedef değişmedi: haber makalelerini üç ayrı kategoriye sınıflandırmak:

rec.autos, sci.med ve comp.graphics.

Senin için şu paketler yüklendi: torch, nn, optim.

Bu egzersiz

PyTorch ile Metin için Deep Learning

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

Egzersiz talimatları

  • Gerekli parametrelerle LSTM ve doğrusal (linear) katmanları tamamlayarak bir LSTM modeli kur.
  • Modeli gerekli parametrelerle başlat.
  • Grad'leri sıfırlayıp X_train_seq giriş verisini modelden geçirerek LSTM modelini eğit.
  • Tahmin edilen outputs ve gerçek etiketlere göre kaybı (loss) hesapla.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Initialize the LSTM and the output layer with parameters
class LSTMModel(nn.Module):
    def __init__(self, input_size, hidden_size, num_layers, num_classes):
        super(LSTMModel, self).__init__()
        self.hidden_size = hidden_size
        self.num_layers = num_layers
        self.lstm = nn.LSTM(____, ____, ____, batch_first=True)
        self.fc = nn.Linear(____, ____)        
    def forward(self, x):
        h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size)
        c0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size)
        out, _ = self.lstm(x, (h0, c0))
        out = out[:, -1, :] 
        out = self.fc(out)
        return out

# Initialize model with required parameters
lstm_model = LSTMModel(____, ____, ____, ____)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(lstm_model.parameters(), lr=0.01)

# Train the model by passing the correct parameters and zeroing the gradient
for epoch in range(10): 
    optimizer.____
    outputs = lstm_model(____)
    loss = criterion(____, y_train_seq)
    loss.backward()
    optimizer.step()
    print(f'Epoch: {epoch+1}, Loss: {loss.item()}')
Kodu Düzenle ve Çalıştır