टेक्स्ट जनरेशन का परिचय

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

Shubham Jain

Instructor

टेक्स्ट जनरेशन और NLP

  • प्रमुख उपयोग: चैटबॉट्स, भाषा अनुवाद, टेक्निकल राइटिंग
  • RNN, LSTM, GRU: पिछले संदर्भ को याद रखकर सीक्वेन्शियल डेटा बेहतर प्रोसेस करना
  • इनपुट: The cat is on the m
  • आउटपुट: The cat is on the mat

चैटबॉट छवि

1 Image by vectorjuice on Freepik
PyTorch के साथ टेक्स्ट के लिए डीप लर्निंग

टेक्स्ट जनरेशन के लिए RNN बनाना

import torch
import torch.nn as nn

data = "Hello how are you?" chars = list(set(data)) char_to_ix = {char: i for i, char in enumerate(chars)} ix_to_char = {i: char for i, char in enumerate(chars)}
class RNNModel(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(RNNModel, self).__init__() self.hidden_size = hidden_size
self.rnn = nn.RNN(input_size, hidden_size, batch_first=True)
self.fc = nn.Linear(hidden_size, output_size)
PyTorch के साथ टेक्स्ट के लिए डीप लर्निंग

फॉरवर्ड प्रोपेगेशन और मॉडल क्रिएशन

    def forward(self, x):

h0 = torch.zeros(1, x.size(0), self.hidden_size)
out, _ = self.rnn(x, h0)
out = self.fc(out[:, -1, :])
return out
model = RNNmodel(1, 16, 1)
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
PyTorch के साथ टेक्स्ट के लिए डीप लर्निंग

इनपुट और टार्गेट डेटा तैयार करना

inputs = [char_to_ix[ch] for ch in data[:-1]]
targets = [char_to_ix[ch] for ch in data[1:]]



inputs = torch.tensor(inputs, dtype=torch.long) .view(-1, 1)
inputs = nn.functional.one_hot( inputs, num_classes=len(chars)).float()
targets = torch.tensor(targets, dtype=torch.long)
  • इंडेक्स बनाना
  • टेन्सर कन्वर्ज़न
  • वन-हॉट एनकोडिंग
  • टार्गेट्स तैयार करना
PyTorch के साथ टेक्स्ट के लिए डीप लर्निंग

RNN मॉडल ट्रेन करना

for epoch in range(100):

model.train()
outputs = model(inputs)
loss = criterion(outputs, targets)
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch+1) % 10 == 0: print(f'Epoch {epoch+1}/100, Loss: {loss.item()}')
PyTorch के साथ टेक्स्ट के लिए डीप लर्निंग

मॉडल का परीक्षण

model.eval()

test_input = char_to_ix['h']
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: 10, Predicted Output: {model(test_input).item()}')
Epoch 10/100, Loss: 3090.861572265625
Epoch 20/100, Loss: 2935.4580078125
...
Epoch 100/100, Loss: 1922.44140625
Test Input: h, Predicted Output: e
PyTorch के साथ टेक्स्ट के लिए डीप लर्निंग

अभ्यास करते हैं!

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

Preparing Video For Download...