GNN के साथ नोड वर्गीकरण
Cora dataset, 2-layer GCN, प्रशिक्षण लूप, masked loss, test accuracy और एम्बेडिंग का विज़ुअलाइज़ेशन।
GNN के साथ नोड वर्गीकरण, CoddyKit पर पाइथन के साथ एआई सीखें का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह पाइथन के साथ एआई सीखें सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। पाइथन के साथ एआई सीखें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
नोड वर्गीकरण कार्य
नोड वर्गीकरण अपनी विशेषताओं और ग्राफ संरचना का उपयोग करके प्रत्येक नोड के लिए एक लेबल का पूर्वानुमान करता है। इसका पारंपरिक उदाहरण है: उद्धरण नेटवर्क में प्रत्येक शोध-पत्र को उसके शोध-विषय के अनुसार लेबल करना, जिसमें शोध-पत्र के शब्दों और उसके द्वारा उद्धृत शोध-पत्रों—दोनों का उपयोग किया जाता है।
Cora डेटासेट
Cora ग्राफ लर्निंग का MNIST है। यह मशीन लर्निंग के 2,708 शोध-पत्रों का उद्धरण ग्राफ है। किनारे उद्धरण दर्शाते हैं; प्रत्येक शोध-पत्र में 1433 की लंबाई वाला शब्द-थैला विशेषता सदिश होता है; लक्ष्य प्रत्येक शोध-पत्र को 7 विषयों में से एक में वर्गीकृत करना है।
# Cora:
# nodes = 2708 papers
# edges = citations
# features per node = 1433
# classes = 7Planetoid के माध्यम से लोड करना
PyTorch Geometric, Planetoid लोडर के माध्यम से Cora उपलब्ध कराता है। यह डेटा डाउनलोड करके उसे एकल ग्राफ ऑब्जेक्ट में व्यवस्थित करता है।
from torch_geometric.datasets import Planetoid
dataset = Planetoid(root="data/Cora", name="Cora")
data = dataset[0]
print(data) # x, edge_index, y, train_mask, test_maskडेटा ऑब्जेक्ट
ग्राफ ऑब्जेक्ट में सब कुछ मौजूद होता है: data.x (विशेषताएँ 2708 x 1433), data.edge_index (कनेक्टिविटी), data.y (वास्तविक लेबल) और बूलियन मास्क, जो यह चिह्नित करते हैं कि कौन-से नोड प्रशिक्षण, सत्यापन और परीक्षण के लिए हैं।
7 वर्गों के लिए GCN
हम दो-परत वाला GCN बनाते हैं, जो 1433 इनपुट विशेषताओं को 64-आयामी छिपी हुई परत से गुज़ारकर 7 वर्ग लॉगिट्स में बदलता है।
import torch
import torch.nn.functional as F
from torch_geometric.nn import GCNConv
class GCN(torch.nn.Module):
def __init__(self):
super().__init__()
self.conv1 = GCNConv(1433, 64)
self.conv2 = GCNConv(64, 7)
def forward(self, x, edge_index):
x = F.relu(self.conv1(x, edge_index))
x = F.dropout(x, training=self.training)
return self.conv2(x, edge_index)ट्रांसडक्टिव लर्निंग
Cora ट्रांसडक्टिव है: प्रशिक्षण के दौरान पूरा ग्राफ (जिसमें परीक्षण नोड और उनकी विशेषताएँ भी शामिल हैं) दिखाई देता है; हम केवल परीक्षण लेबल छिपाते हैं। मॉडल सभी नोडों के कनेक्शन का उपयोग करता है, लेकिन केवल लेबल वाले प्रशिक्षण नोडों से सीखता है।
train_mask
train_mask एक बूलियन सदिश है, जो यह चुनता है कि कौन-से नोड हानि में योगदान देंगे। हम पूरे ग्राफ पर मॉडल चलाते हैं, लेकिन क्रॉस-एंट्रॉपी की गणना केवल मास्क किए गए प्रशिक्षण नोडों पर करते हैं।
model = GCN()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4)
def train():
model.train()
optimizer.zero_grad()
out = model(data.x, data.edge_index)
loss = F.cross_entropy(out[data.train_mask], data.y[data.train_mask])
loss.backward()
optimizer.step()
return loss.item()मास्क की गई हानि की सहज समझ
भले ही अग्रसरण सभी 2708 नोडों के लिए लॉगिट्स उत्पन्न करता है, train_mask के साथ अनुक्रमण करने से हानि केवल लेबल वाले प्रशिक्षण नोडों तक सीमित हो जाती है। बिना लेबल वाले नोड अभी भी संदेश भेजते हैं और मॉडल की सहायता करते हैं, लेकिन वे सीधे ग्रेडिएंट को प्रभावित नहीं करते।
test_mask से मूल्यांकन
प्रशिक्षण के बाद, हम अलग रखे गए test_mask नोडों पर सटीकता का मूल्यांकन करते हैं, जिन पर हानि का कभी प्रभाव नहीं पड़ा। इससे उन शोध-पत्रों के लिए सामान्यीकरण मापा जाता है जिनके लेबल मॉडल ने कभी नहीं देखे।
@torch.no_grad()
def test():
model.eval()
pred = model(data.x, data.edge_index).argmax(dim=1)
correct = (pred[data.test_mask] == data.y[data.test_mask]).sum()
return int(correct) / int(data.test_mask.sum())t-SNE से एम्बेडिंग का दृश्यांकन
यह देखने के लिए कि GCN ने क्या सीखा, छिपी हुई परत की नोड एम्बेडिंग लें और t-SNE से उन्हें 2D में प्रक्षेपित करें। अच्छी तरह प्रशिक्षित GCN ऐसे समूह बनाता है जिनमें एक ही वर्ग के नोड एक साथ दिखाई देते हैं।
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt
emb = model.conv1(data.x, data.edge_index).detach().numpy()
z = TSNE(n_components=2).fit_transform(emb)
plt.scatter(z[:, 0], z[:, 1], c=data.y, cmap="tab10", s=8)t-SNE आलेख की व्याख्या
अच्छी तरह अलग-अलग रंगीन समूहों का अर्थ है कि एम्बेडिंग वर्गों में अंतर करने में सक्षम हैं—यह संकेत है कि GCN ने उपयोगी संरचना सीखी है। एक-दूसरे पर चढ़े हुए धब्बे कम प्रशिक्षण या अति-समतलीकरण का संकेत देते हैं। t-SNE गुणात्मक जाँच है, कोई मापदंड नहीं।
त्वरित जाँच
अपने नोड वर्गीकरण संबंधी ज्ञान का परीक्षण करें।
पुनरावलोकन
आपने GNN के साथ नोड वर्गीकरण सीखा:
- Planetoid, Cora उद्धरण ग्राफ को लोड करता है
- दो-परत वाला GCN 1433 से 64 से 7 वर्गों में मानचित्रण करता है
- train_mask हानि को सीमित करता है; test_mask सामान्यीकरण को मापता है
- t-SNE वर्गों के अलगाव की जाँच के लिए नोड एम्बेडिंग का दृश्यांकन करता है
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 53
- पाठ
- 225
अक्सर पूछे जाने वाले प्रश्न
क्या “GNN के साथ नोड वर्गीकरण” पाठ निःशुल्क है?
हाँ — पाइथन के साथ एआई सीखें अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “GNN के साथ नोड वर्गीकरण” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। पाइथन के साथ एआई सीखें पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“GNN के साथ नोड वर्गीकरण” में मैं क्या सीखूँगा?
Cora dataset, 2-layer GCN, प्रशिक्षण लूप, masked loss, test accuracy और एम्बेडिंग का विज़ुअलाइज़ेशन। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ पाइथन के साथ एआई सीखें का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या पाइथन के साथ एआई सीखें शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर पाइथन के साथ एआई सीखें शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“GNN के साथ नोड वर्गीकरण” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस पाइथन के साथ एआई सीखें पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर पाइथन के साथ एआई सीखें पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- मशीन लर्निंग के लिए ग्राफ़ सिद्धांत
- Graph Convolutional Networks (GCN)
- GNN के साथ नोड वर्गीकरण
- Link Prediction और Graph Classification