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

Metin için bir GRU modeli oluşturma

PyBooks'ta ekip, daha önce eğittiğin iki modelin performansından oldukça etkilendi. Ancak mükemmeli hedefledikleri için eldeki görev için kesinlikle en iyi modeli seçmek istiyorlar. Bu nedenle, özellikle metin sınıflandırmada verimliliği ve etkinliğiyle bilinen GRU modellerinin yeteneklerini deneyerek projeyi genişletmeni istediler. Yeni görevin, Newsgroup veri kümesindeki makaleleri şu kategorilere ayırmak için GRU modelini uygulamak:

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 GRU sınıfını tamamla.
  • Modeli aynı parametrelerle başlat.
  • Modeli eğit: parametreleri criterion fonksiyonuna geçir ve kaybı geriye yay.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Complete the GRU model
class GRUModel(nn.Module):
    def __init__(self, input_size, hidden_size, num_layers, num_classes):
        super(GRUModel, self).__init__()
        self.hidden_size = hidden_size
        self.num_layers = num_layers
        self.gru = ____
        self.fc = nn.Linear(hidden_size, num_classes)       
    def forward(self, x):
        h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size) 
        out, _ = self.gru(x, h0)
        out = out[:, -1, :] 
        out = self.fc(out)
        return out

# Initialize the model
gru_model = ____
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(gru_model.parameters(), lr=0.01)

# Train the model and backpropagate the loss after initialization
for epoch in range(15): 
    optimizer.zero_grad()
    outputs = ____
    loss = criterion(____, y_train_seq)
    ____
    optimizer.step()
    print(f'Epoch: {epoch+1}, Loss: {loss.item()}')
Kodu Düzenle ve Çalıştır