शुरू करेंमुफ़्त में शुरू करें

टेक्स्ट के लिए RNN मॉडल बनाना

PyBooks में एक डेटा विश्लेषक के रूप में, आप अक्सर ऐसे डेटासेट देखते हैं जिनमें अनुक्रमिक जानकारी होती है, जैसे कस्टमर इंटरैक्शन, टाइम सीरीज़ डेटा, या टेक्स्ट डॉक्यूमेंट्स. RNN ऐसे डेटा का प्रभावी ढंग से विश्लेषण कर सकती हैं और इनसाइट्स निकाल सकती हैं. इस अभ्यास में, आप Newsgroup डेटासेट के साथ काम करेंगे जिसे आपके लिए पहले से प्रोसेस और एन्कोड किया गया है. इस डेटासेट में अलग-अलग श्रेणियों के आर्टिकल शामिल हैं. आपका काम एक RNN लागू करके इन आर्टिकल्स को तीन श्रेणियों में वर्गीकृत करना है:

rec.autos, sci.med, और comp.graphics.

आपके लिए निम्नलिखित पहले से लोड है: torch, nn, optim.

इसके अलावा, पैरामीटर्स input_size, hidden_size (32), num_layers (2), और num_classes भी प्रीलोड किए गए हैं.

यह और अगले अभ्यास sklearn के fetch_20newsgroups डेटासेट का उपयोग करते हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

PyTorch के साथ टेक्स्ट के लिए डीप लर्निंग

पाठ्यक्रम देखें

अभ्यास निर्देश

  • RNN क्लास को एक RNN लेयर और एक पूरी तरह से कनेक्टेड linear लेयर के साथ पूरा करें.
  • मॉडल इनिशियलाइज़ करें.
  • ग्रेडिएंट्स को ज़ीरो करके RNN मॉडल को दस epochs तक ट्रेन करें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# Complete the RNN class
class RNNModel(nn.Module):
    def __init__(self, input_size, hidden_size, num_layers, num_classes):
        super(RNNModel, self).__init__()
        self.hidden_size = hidden_size
        self.num_layers = num_layers
        self.rnn = ____.____(input_size, hidden_size, num_layers, batch_first=True)
        self.fc = ____.____(hidden_size, num_classes)        
    def forward(self, x):
        h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size)
        out, _ = self.rnn(x, h0)
        out = out[:, -1, :] 
        out = self.fc(out)
        return out

# Initialize the model
rnn_model = ____(input_size, hidden_size, num_layers, num_classes)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(rnn_model.parameters(), lr=0.01)

# Train the model for ten epochs and zero the gradients
for epoch in ____: 
    optimizer.____()
    outputs = ____(X_train_seq)
    loss = criterion(outputs, y_train_seq)
    loss.backward()
    optimizer.step()
    print(f'Epoch: {epoch+1}, Loss: {loss.item()}')
कोड संपादित करें और चलाएँ