ट्रांसफॉर्मर मॉडल बनाना
PyBooks में, जिस रिकमेंडेशन इंजन पर आप काम कर रहे हैं उसे यूज़र रिव्यू के सेंटिमेंट्स को बेहतर ढंग से समझने की ज़रूरत है. आपको लगता है कि ट्रांसफॉर्मर्स, जो एक स्टेट-ऑफ-द-आर्ट आर्किटेक्चर है, इसमें मदद कर सकते हैं. आप एक ट्रांसफॉर्मर मॉडल बनाने का निर्णय लेते हैं जो रिव्यू के सेंटिमेंट्स को एन्कोड कर सके ताकि प्रोजेक्ट की शुरुआत हो सके.
आपके लिए निम्नलिखित पैकेज इम्पोर्ट कर दिए गए हैं: torch, nn, optim.
इनपुट डेटा में ऐसे वाक्य शामिल हैं: "I love this product", "This is terrible", "Could be better" …
और उनके संबंधित बाइनरी सेंटिमेंट लेबल: 1, 0, 0, ...
इनपुट डेटा को स्प्लिट कर एम्बेडिंग्स (embedding — वेक्टर रूप में निरूपण) में बदला गया है और ये वैरिएबल्स में उपलब्ध है:
train_sentences, train_labels, test_sentences, test_labels, token_embeddings
यह अभ्यास पाठ्यक्रम का हिस्सा है
PyTorch के साथ टेक्स्ट के लिए डीप लर्निंग
अभ्यास निर्देश
- ट्रांसफॉर्मर एन्कोडर इनिशियलाइज़ करें.
- सेंटिमेंट क्लासों की संख्या के आधार पर फुली-कनेक्टेड लेयर परिभाषित करें.
- फॉरवर्ड मेथड में, इनपुट को ट्रांसफॉर्मर एन्कोडर से पास करें और उसके बाद लीनियर लेयर लगाएँ.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
class TransformerEncoder(nn.Module):
def __init__(self, embed_size, heads, num_layers, dropout):
super(TransformerEncoder, self).__init__()
# Initialize the encoder
self.encoder = nn.____(
nn.____(d_model=embed_size, nhead=heads),
num_layers=num_layers)
# Define the fully connected layer
self.fc = nn.Linear(embed_size, ____)
def forward(self, x):
# Pass the input through the transformer encoder
x = self.____(x)
x = x.mean(dim=1)
return self.fc(x)
model = TransformerEncoder(embed_size=512, heads=8, num_layers=3, dropout=0.5)
optimizer = optim.Adam(model.parameters(), lr=1e-3)
criterion = nn.CrossEntropyLoss()