RNN के साथ टेक्स्ट जेनरेशन - ट्रेनिंग और जेनरेशन
PyBooks की टीम चाहती है कि आप RNN मॉडल को ट्रेन और टेस्ट करें. यह मॉडल दिए गए इनपुट के आधार पर सीक्वेंस में अगला कैरेक्टर प्रेडिक्ट करने के लिए डिजाइन किया गया है, ताकि बुक नेम्स का ऑटो-कम्प्लीशन हो सके. यह प्रोजेक्ट टीम को टेक्स्ट कम्प्लीशन के लिए मॉडल्स को और विकसित करने में मदद करेगा.
RNNmodel क्लास के लिए model इंस्टेंस आपके लिए प्रीलोड किया गया है. data वैरिएबल पहले से प्री-प्रोसेस होकर सीक्वेंस के रूप में एनकोड किया गया है.
inputs और targets वैरिएबल्स आपके लिए प्रीलोड हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
PyTorch के साथ टेक्स्ट के लिए डीप लर्निंग
अभ्यास निर्देश
- वह loss function इंस्टैंशिएट करें जिसका उपयोग हमारे मॉडल की एरर कंप्यूट करने के लिए होगा.
- PyTorch के optimization मॉड्यूल से optimizer इंस्टैंशिएट करें.
- मॉडल को ट्रेन मोड में सेट करके और optimization स्टेप से पहले gradients को ज़ीरो करके ट्रेनिंग प्रोसेस चलाएँ.
- ट्रेनिंग पूरा होने के बाद, सैंपल इनपुट पर टेस्ट करने के लिए मॉडल को इवैल्यूएशन मोड में स्विच करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Instantiate the loss function
criterion = nn.____()
# Instantiate the optimizer
optimizer = torch.optim.____(model.parameters(), lr=0.01)
# Train the model
for epoch in range(100):
model.____()
outputs = model(inputs)
loss = criterion(outputs, targets)
optimizer.____()
loss.backward()
optimizer.step()
if (epoch+1) % 10 == 0:
print(f'Epoch {epoch+1}/100, Loss: {loss.item()}')
# Test the model
model.____()
test_input = char_to_ix['r']
test_input = nn.functional.one_hot(torch.tensor(test_input).view(-1, 1), num_classes=len(chars)).float()
predicted_output = model(test_input)
predicted_char_ix = torch.argmax(predicted_output, 1).item()
print(f"Test Input: 'r', Predicted Output: '{ix_to_char[predicted_char_ix]}'")