टेक्स्ट के लिए GRU मॉडल बनाना
PyBooks में, टीम आपके पहले ट्रेन किए गए दो मॉडलों के प्रदर्शन से प्रभावित है. लेकिन और बेहतर विकल्प चुनने के लिए वे सुनिश्चित करना चाहते हैं कि इस कार्य के लिए बिल्कुल सर्वश्रेष्ठ मॉडल चुना जाए. इसलिए वे चाहते हैं कि आप प्रोजेक्ट को आगे बढ़ाएँ और GRU मॉडलों की क्षमताओं के साथ प्रयोग करें, जो टेक्स्ट क्लासिफिकेशन टास्क में अपनी एफिशिएंसी और इफेक्टिवनेस के लिए जाने जाते हैं. आपका नया असाइनमेंट है कि आप GRU मॉडल लागू करके Newsgroup डेटासेट के आर्टिकल्स को निम्न श्रेणियों में क्लासिफाई करें:
rec.autos, sci.med, और comp.graphics.
आपके लिए ये पैकेज पहले से लोड हैं: torch, nn, optim.
यह अभ्यास पाठ्यक्रम का हिस्सा है
PyTorch के साथ टेक्स्ट के लिए डीप लर्निंग
अभ्यास निर्देश
- जरूरी पैरामीटर्स के साथ GRU क्लास को पूरा करें.
- उन्हीं पैरामीटर्स के साथ मॉडल इनिशियलाइज़ करें.
- मॉडल ट्रेन करें: पैरामीटर्स को क्राइटेरियन फंक्शन में पास करें, और लॉस को बैकप्रोपेगेट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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()}')