الوثائق | ورقة | كولاب دفاتر ودروس الفيديو | الموارد الخارجية | أمثلة OGB
Pyg (Pytorch الهندسة) هي مكتبة مبنية على Pytorch لكتابة وتدريب الشبكات العصبية الرسم البياني بسهولة (GNNS) لمجموعة واسعة من التطبيقات المتعلقة بالبيانات المنظمة.
وهو يتألف من طرق مختلفة للتعلم العميق على الرسوم البيانية والهياكل غير المنتظمة الأخرى ، والمعروفة أيضًا باسم التعلم العميق الهندسي ، من مجموعة متنوعة من الأوراق المنشورة. بالإضافة إلى ذلك ، يتكون من اللوادر الصغيرة التي سهلة الاستخدام للعمل على العديد من الرسوم البيانية العملاقة الصغيرة والفردية ، ودعم GPU متعدد ، ودعم torch.compile ، ودعم DataPipe ، وعدد كبير من مجموعات البيانات القياسية الشائعة (استنادًا إلى واجهات بسيطة لإنشاء) ، والتحول المفيد ، على حد سواء للتعلم على الرسوم البيانية المستعارة ، وكذلك عمليات بيانات 3D.
انقر هنا للانضمام إلى مجتمع Slack لدينا!
- أبرز المكتبة
- جولة سريعة للمستخدمين الجدد
- نظرة عامة على الهندسة المعمارية
- تنفيذ نماذج GNN
- تثبيت
أبرز المكتبة
سواء كنت باحثًا في التعلم الآلي أو مستخدمًا لأول مرة لمجموعات أدوات التعلم الآلي ، فإليك بعض الأسباب لتجربة PYG للتعلم الآلي على البيانات المهيكلة.
- API سهلة الاستخدام وموحدة : كل ما يتطلبه الأمر هو 10-20 خطوط من التعليمات البرمجية للبدء في تدريب نموذج GNN (انظر القسم التالي لجولة سريعة). Pyg هو Pytorch-on-the-the-rocks : فهو يستخدم واجهة برمجة تطبيقات تتمحور حول الموتر وتبقي مبادئ التصميم بالقرب من الفانيليا pytorch. إذا كنت معتادًا بالفعل على Pytorch ، فإن استخدام PYG أمر واضح ومباشر.
- نماذج GNN شاملة ومصنعة جيدًا : تم تنفيذ معظم أبناء الشبكة العصبية الرسوم البيانية الحديثة من قبل مطوري المكتبات أو مؤلفي الأوراق البحثية وهي جاهزة للتطبيق.
- مرونة كبيرة : يمكن بسهولة توسيع نماذج PYG الحالية لإجراء البحوث الخاصة بك مع GNNs. يعد إجراء تعديلات على النماذج الحالية أو إنشاء بنيات جديدة أمرًا بسيطًا ، وذلك بفضل واجهة برمجة تطبيقات الرسائل التي سهلة الاستخدام ، ومجموعة متنوعة من المشغلين ووظائف الأداة المساعدة.
- نماذج GNN في العالم الحقيقي على نطاق واسع : نحن نركز على الحاجة إلى تطبيقات GNN في السيناريوهات الصعبة في العالم الحقيقي ، ودعم التعلم على أنواع متنوعة من الرسوم البيانية ، بما في ذلك على سبيل المثال لا الحصر: GNNs القابلة للتطوير للرسوم البيانية مع ملايين العقد ؛ gnns الديناميكية لتوقعات العقدة مع مرور الوقت ؛ GNNs غير المتجانسة مع أنواع العقدة المتعددة وأنواع الحواف.
جولة سريعة للمستخدمين الجدد
في هذه الجولة السريعة ، نسلط الضوء على سهولة إنشاء وتدريب نموذج GNN مع بضعة أسطر فقط من التعليمات البرمجية.
تدريب نموذج GNN الخاص بك
في أول لمحة عن PYG ، نقوم بتنفيذ تدريب GNN لتصنيف الأوراق في رسم بياني اقتباس. لهذا ، نقوم بتحميل مجموعة بيانات CORA ، وننشئ نموذج GCN بسيط من طبقات باستخدام GCNConv المحددة مسبقًا:
import torch
from torch import Tensor
from torch_geometric . nn import GCNConv
from torch_geometric . datasets import Planetoid
dataset = Planetoid ( root = '.' , name = 'Cora' )
class GCN ( torch . nn . Module ):
def __init__ ( self , in_channels , hidden_channels , out_channels ):
super (). __init__ ()
self . conv1 = GCNConv ( in_channels , hidden_channels )
self . conv2 = GCNConv ( hidden_channels , out_channels )
def forward ( self , x : Tensor , edge_index : Tensor ) -> Tensor :
# x: Node feature matrix of shape [num_nodes, in_channels]
# edge_index: Graph connectivity matrix of shape [2, num_edges]
x = self . conv1 ( x , edge_index ). relu ()
x = self . conv2 ( x , edge_index )
return x
model = GCN ( dataset . num_features , 16 , dataset . num_classes ) يمكننا الآن تحسين النموذج في حلقة التدريب ، على غرار إجراء تدريب Pytorch القياسي.
import torch . nn . functional as F
data = dataset [ 0 ]
optimizer = torch . optim . Adam ( model . parameters (), lr = 0.01 )
for epoch in range ( 200 ):
pred = model ( data . x , data . edge_index )
loss = F . cross_entropy ( pred [ data . train_mask ], data . y [ data . train_mask ])
# Backpropagation
optimizer . zero_grad ()
loss . backward ()
optimizer . step () يمكن العثور على مزيد من المعلومات حول تقييم أداء النموذج النهائي في المثال المقابل.
قم بإنشاء طبقة GNN الخاصة بك
بالإضافة إلى التطبيق السهل لـ GNNs الحالية ، يجعل PYG من السهل تنفيذ الشبكات العصبية الرسم البياني المخصص (انظر هنا للحصول على البرنامج التعليمي المصاحب). على سبيل المثال ، هذا هو كل ما يتطلبه الأمر لتنفيذ الطبقة التلافيفية الحافة من Wang et al. :
ستر
import torch
from torch import Tensor
from torch . nn import Sequential , Linear , ReLU
from torch_geometric . nn import MessagePassing
class EdgeConv ( MessagePassing ):
def __init__ ( self , in_channels , out_channels ):
super (). __init__ ( aggr = "max" ) # "Max" aggregation.
self . mlp = Sequential (
Linear ( 2 * in_channels , out_channels ),
ReLU (),
Linear ( out_channels , out_channels ),
)
def forward ( self , x : Tensor , edge_index : Tensor ) -> Tensor :
# x: Node feature matrix of shape [num_nodes, in_channels]
# edge_index: Graph connectivity matrix of shape [2, num_edges]
return self . propagate ( edge_index , x = x ) # shape [num_nodes, out_channels]
def message ( self , x_j : Tensor , x_i : Tensor ) -> Tensor :
# x_j: Source node features of shape [num_edges, in_channels]
# x_i: Target node features of shape [num_edges, in_channels]
edge_features = torch . cat ([ x_i , x_j - x_i ], dim = - 1 )
return self . mlp ( edge_features ) # shape [num_edges, out_channels] نظرة عامة على الهندسة المعمارية
يوفر PYG إطار عمل متعدد الطبقات يمكّن المستخدمين من إنشاء حلول الشبكة العصبية الرسم البياني على كل من المستويات المنخفضة والعالية. وهي تتألف من المكونات التالية:
- يستخدم محرك PYG إطار التعلم العميق Pytorch القوي مع دعم
torch.compile الكامل و Torchscript ، بالإضافة إلى إضافات مكتبات وحدة المعالجة المركزية/CUDA الفعالة للعمل على البيانات المتناثرة ، على سبيل المثال ، pyg-lib . - يعالج تخزين PYG معالجة البيانات والتحويل وتحميل خطوط أنابيب. إنه قادر على التعامل مع مجموعات بيانات الرسم البياني على نطاق واسع ، ويوفر حلولًا فعالة للرسوم البيانية غير المتجانسة. كما يوفر مجموعة متنوعة من حلول أخذ العينات ، والتي تتيح تدريب GNNs على الرسوم البيانية على نطاق واسع.
- تجمع مشغلي PYG الوظائف الأساسية لتنفيذ الشبكات العصبية الرسم البياني. يدعم PYG لبنات بناء GNN المهمة التي يمكن دمجها وتطبيقها على أجزاء مختلفة من نموذج GNN ، مما يضمن المرونة الغنية لتصميم GNN.
- أخيرًا ، توفر PYG مجموعة وفيرة من نماذج GNN ، والأمثلة التي تعرض نماذج GNN على معايير الرسم البياني القياسي. بفضل مرونتها ، يمكن للمستخدمين بسهولة بناء وتعديل نماذج GNN المخصصة لتناسب احتياجاتهم الخاصة.
تنفيذ نماذج GNN
ندرج حاليًا نماذج PYG والطبقات والمشغلين وفقًا للفئة:
طبقات GNN: يتم تنفيذ جميع طبقات الشبكة العصبية الرسم البياني عبر واجهة nn.MessagePassing . تحدد طبقة GNN كيفية تنفيذ تمرير الرسائل ، أي عن طريق تصميم وظائف مختلفة للرسالة والتجميع والتحديث على النحو المحدد هنا. يمكن تكديس طبقات GNN هذه معًا لإنشاء نماذج الشبكة العصبية الرسم البياني.
- GCNCONV من KIPF و Welling: تصنيف شبه خاضع للإشراف مع شبكات "الرسم البياني" (ICLR 2017) [ مثال ]
- Chebconv من Defferrard et al. : الشبكات العصبية التلافيفية على الرسوم البيانية ذات التصفية الطيفية الموضعية السريعة (NIPS 2016) [ مثال ]
- Gatconv من Veličković et al. : شبكات انتباه الرسم البياني (ICLR 2018) [ مثال ]
توسيع لرؤية جميع طبقات GNN المنفذة ...
- GCN2CONV من Chen et al. : الشبكات التلافيفية الرسم البياني البسيط والعميق (ICML 2020) [ example1 ، example2 ]
- Splineconv من Fey et al. : splinecnn: التعلم العميق الهندسي السريع مع نواة B-spline المستمرة (CVPR 2018) [ example1 ، example2 ]
- nnconv من جيلمر وآخرون. : رسالة عصبية تمرير الكيمياء الكمومية (ICML 2017) [ example1 ، example2 ]
- CGConv من Xie و Grossman: الشبكات العصبية Crystal الرسم البياني للتنبؤ الدقيق والقابل للتفسير لخصائص المواد (رسائل المراجعة الفيزيائية 120 ، 2018)
- Ecconv من Simonovsky و Komodakis: إيلاء مكيف الحافة على الرسوم البيانية (CVPR 2017)
- EgConv من خياط وآخرون. : المرشحات التكيفية والانصهار التجميعي لتلوينات الرسم البياني الفعال (GNNSYS 2021) [ مثال ]
- GATV2CONV من برودي وآخرون. : ما مدى انتباه شبكات انتباه الرسم البياني؟ (ICLR 2022)
- TransformerConv من شي وآخرون. : التنبؤ الملصق المقنع: نموذج تمرير الرسائل الموحدة للتصنيف شبه الخاضع للإشراف (CORR 2020) [ مثال ]
- Sageconv من هاميلتون وآخرون. : التمثيل الاستقرائي تعلم الرسوم البيانية الكبيرة (NIPS 2017) [ example1 ، example2 ، example3 ، example4 ]
- GraphConv من ، على سبيل المثال ، Morris et al. : Weisfeiler و Leman Go Neural: الرسم البياني الأعلى الشبكات العصبية (AAAI 2019)
- Gatergraphconv من Li et al. : بوابات الرسم البياني المتسلسل الشبكات العصبية (ICLR 2016)
- ResgatedGraphconv من Bresson و Laurent: Graph Graph Convents المتبقية (Corr 2017)
- Ginconv من Xu et al. : ما مدى قوة الشبكات العصبية الرسم البياني؟ (ICLR 2019) [ مثال ]
- Gineconv من هو وآخرون. : استراتيجيات للشبكات العصبية الرسم البياني قبل التدريب (ICLR 2020)
- Armaconv من بيانتشي وآخرون. : الرسم البياني الشبكات العصبية مع مرشحات ARMA التلافيفية (CORR 2019) [ مثال ]
- SGConv من وو وآخرون. : تبسيط الشبكات التلافيفية الرسم البياني (CORR 2019) [ مثال ]
- APPNP من Klicpera et al. : التنبؤ بعد ذلك: الرسم البياني الشبكات العصبية تلبية Pagerank الشخصية (ICLR 2019) [ مثال ]
- MfConv من Duvenaud et al. : الشبكات التلافيفية على الرسوم البيانية لتعلم بصمات الأصابع الجزيئية (NIPS 2015)
- agnnconv من thekumparampil et al. : الشبكة العصبية الرسم البياني المستند إلى الانتباه للتعلم شبه الخاضع للإشراف (CORR 2017) [ مثال ]
- TagConv من Du et al. : طوبولوجيا الشبكات التلافيفية الرسم البياني التكيفي (CORR 2017) [ مثال ]
- Pnaconv من Corso et al. : تجميع الحي الرئيسي لشبكات الرسم البياني (CORR 2020) [ مثال ]
- Faconv من Bo et al. : ما وراء المعلومات ذات التردد المنخفض في الشبكات التلافيفية الرسم البياني (AAAI 2021)
- PDNCONV من Rozembrczki et al. : شبكات اكتشاف Pathfinder لتمرير الرسائل العصبية (www 2021)
- RGCNCONV من Schlichtkrull et al. : نمذجة البيانات العلائقية مع الشبكات التلافيفية الرسم البياني (ESWC 2018) [ example1 ، example2 ]
- rgatconv من Busbridge et al. : شبكات انتباه الرسم البياني العلائقي (CORR 2019) [ مثال ]
- FilmConv من Brockschmidt: GNN-Film: الرسم البياني الشبكات العصبية مع تعديل خطي من الحكمة (ICML 2020) [ مثال ]
- signdconv من Derr et al. : شبكة تلافيفية موقعة الرسم البياني (ICDM 2018) [ مثال ]
- Dnaconv من Fey: Just Jump: Dynamic Neighborhood Aggregation in Graph Neural Networks (ICLR-W 2019) [ مثال ]
- Panconv من ما وآخرون. : الالتفاف القائم على التكامل وتجميع الشبكات العصبية الرسم البياني (Neups 2020)
- PointNetConv (بما في ذلك التكرار أبعد أخذ عينات من النقاط ، وتوليد الرسم البياني الديناميكي بناءً على أقرب جار أو أقصى مسافة ، والاستيفاء K-NN لـ UPSAMPLING) من Qi et al. : PointNet: التعلم العميق على مجموعات النقاط لتصنيف 3D وتجزئة (CVPR 2017) و PointNet ++: تعلم الميزة الهرمية العميقة على مجموعات النقاط في مساحة متري (NIPS 2017) [ Imexam1 ، example2 ]
- Edgeconv من Wang et al. : الرسم البياني الديناميكي CNN للتعلم على غيوم النقاط (Corr ، 2018) [ example1 ، example2 ]
- Xconv من Li et al. : pointcnn: الالتفاف على النقاط المحولة X (Neups 2018) [ مثال ]
- PPFConv من Deng et al. : PPFNET: Global Context Aware Features Local Feature for Hold 3D Point Matching (CVPR 2018)
- GMMCONV من مونتي وآخرون. : التعلم العميق الهندسي على الرسوم البيانية والمشعبات باستخدام CNNs نموذج الخليط (CVPR 2017)
- FeastConv من Verma et al. : FeastNet: Confoltions الرسم البياني المميز لتحليل الشكل ثلاثي الأبعاد (CVPR 2018)
- PointTransformerConv من Zhao et al. : محول النقطة (2020)
- Hypergraphconv من باي وآخرون. : الالتفاف الزائد والاهتمام المفرط (CORR 2019)
- GravnetConv من Qasim et al. : تمثيلات التعلم لهندسة كاشف الجسيمات غير النظامية مع شبكات الرسم البياني المرجح عن المسافة (مجلة الفيزياء الأوروبية C ، 2019)
- Supergat من Kim و OH: كيفية العثور على الحي الودي: تصميم انتباه الرسم البياني مع الإشراف الذاتي (ICLR 2021) [ مثال ]
- HGTCONV من هو وآخرون. : محول الرسم البياني غير المتجانس (www 2020) [ مثال ]
- Heatconv من Mo et al. : شبكة انتباه الرسم البياني غير المتجانسة المحسنة على الحافة للتنبؤ بالمسار متعدد الوكلاء (CORR 2021)
- SSGConv من Zhu et al. : إتلاف الرسم البياني الطيفي البسيط (ICLR 2021)
- DOSEDGATCONV من Zhang et al. : فهم الرسم البياني الحسابي GNN: حساب منسق ، IO ، ومنظور الذاكرة (MLSYS 2022)
- GPSConv من Rampášek et al. : وصفة لمحول الرسم البياني العام والقوي والقابل للتطوير (Neups 2022) [ مثال ]
طبقات التجميع: تجمع طبقات تجميع الرسوم البيانية بين التمثيلات المتجهية لمجموعة من العقد في رسم بياني (أو خريطة فرعية) في تمثيل متجه واحد يلخص خصائصها من العقد. يتم تطبيقه بشكل شائع على مهام مستوى الرسم البياني ، والتي تتطلب الجمع بين ميزات العقدة في تمثيل رسم بياني واحد.
- تجميع أفضل K من GAO و JI: Graph U-Nets (ICML 2019) ، Cangea et al. : نحو مصنفات الرسم البياني الهرمي المتفرق (Neups-W 2018) و Knyazev et al. : فهم الانتباه والتعميم في الشبكات العصبية الرسم البياني (ICLR-W 2019) [ مثال ]
- Diffpool من Ying et al. : تمثيل الرسم البياني الهرمي التعلم مع تجميع قابل للتمييز (Neups 2018) [ مثال ]
توسيع لرؤية جميع طبقات التجميع المطبقة ...
- تجميع الانتباه من Li et al. : شبكات مطابقة الرسم البياني لتعلم تشابه الكائنات المهيكلة الرسم البياني (ICML 2019) [ مثال ]
- set2set من Vinyals et al. : أمر أمر: تسلسل التسلسل للمجموعات (ICLR 2016) [ مثال ]
- فرز التجميع من Zhang et al. : بنية التعلم العميق من طرف إلى طرف لتصنيف الرسم البياني (AAAI 2018) [ مثال ]
- تجمع Mincut من Bianchi et al. : التجميع الطيفي مع الشبكات العصبية الرسم البياني لتجميع الرسوم البيانية (ICML 2020) [ مثال ]
- تجميع DMON من Tsitsulin et al. : تجميع الرسم البياني مع الشبكات العصبية الرسم البياني (CORR 2020) [ مثال ]
- تجمع Graclus من Dhillon et al. : تخفيضات الرسم البياني المرجح دون eigenvectors: نهج متعدد المستويات (Pami 2007) [ مثال ]
- تجمع شبكة Voxel من ، EG ، Simonovsky و Komodakis: مرشحات ديناميكية مكيفة في الشبكات العصبية التلافيفية على الرسوم البيانية (CVPR 2017) [ مثال ]
- تجمع SAG من Lee et al. : تجميع الرسم البياني للاعتداء الذاتي (ICML 2019) و Knyazev et al. : فهم الانتباه والتعميم في الشبكات العصبية الرسم البياني (ICLR-W 2019) [ مثال ]
- تجمع الحافة من Diehl et al. : نحو تجميع الرسم البياني عن طريق تقلص الحافة (ICML-W 2019) و Diehl: تجمع تقلص الحافة للشبكات العصبية الرسم البياني (CORR 2019) [ مثال ]
- في أسرع وقت مضى من رانجان وآخرون. : في أسرع وقت ممكن: بنية تكيفية مدركة لتعلم تمثيلات الرسم البياني الهرمي (AAAI 2020) [ مثال ]
- panpooling من ما وآخرون. : الالتفاف القائم على التكامل وتجميع الشبكات العصبية الرسم البياني (Neups 2020)
- Mempooling من Khasahmadi et al. : شبكات الرسم البياني المستندة إلى الذاكرة (ICLR 2020) [ مثال ]
- Graph Multiset Transformer من Baek et al. : التعلم الدقيق لتمثيلات الرسم البياني مع تجميع الرسم البياني Multiset (ICLR 2021) [ مثال ]
- تجميع التوازن من بارتونوف وآخرون. : (UAI 2022) [ مثال ]
نماذج GNN: تتضمن نماذج GNN المدعومة لدينا طبقات متعددة لتمرير الرسائل ، ويمكن للمستخدمين استخدام هذه النماذج المحددة مسبقًا مباشرة لعمل تنبؤات على الرسوم البيانية. على عكس التراص البسيط لطبقات GNN ، يمكن أن تتضمن هذه النماذج المعالجة المسبقة ، والمعلمات الإضافية القابلة للتعلم ، والاتصالات تخطي ، وتوصيل الرسم البياني ، وما إلى ذلك.
- Schnet من Schütt et al. : Schnet: شبكة عصبية تلافيفية مستمرة لنمذجة التفاعلات الكمومية (NIPS 2017) [ مثال ]
- dimenet و dimenetplusplus من Klicpera et al. : رسالة اتجاهية تمرير الرسوم البيانية الجزيئية (ICLR 2020) ورسالة اتجاهية سريعة وعدم اليقين التي تمر بالجزيئات غير المتوازنة (Neups-W 2020) [ مثال ]
- Node2Vec من Grover و Leskovec: Node2Vec: تعلم ميزة قابلة للتطوير للشبكات (KDD 2016) [ مثال ]
- الرسم البياني العميق infomax من Veličković et al. : Deep Graph InfoMax (ICLR 2019) [ example1 ، example2 ]
- Graph Multiplex Deep InfoMax من Park et al. : التضمين الشبكة المتعددة المنسوبة غير الخاضعة للرقابة (AAAI 2020) [ مثال ]
- التنبؤ الملصق المقنى من شي وآخرون. : التنبؤ الملصق المقنع: نموذج تمرير الرسائل الموحدة للتصنيف شبه الخاضع للإشراف (CORR 2020) [ مثال ]
- PMLP من يانغ وآخرون. : الرسم البياني الشبكات العصبية هي بطبيعتها تعويم جيد: رؤى عن طريق سد GNNs و MLPs (ICLR 2023)
توسيع لرؤية جميع نماذج GNN المنفذة ...
- القفز المعرفة من Xu et al. : تمثيل التعلم على الرسوم البيانية مع شبكات المعرفة القفز (ICML 2018) [ مثال ]
- Metalayer لبناء أي نوع من شبكة الرسم البياني مماثلة لمكتبة TensorFlow Graph Nets من Battaglia et al. : التحيزات الاستقرائية العلائقية ، والتعلم العميق ، وشبكات الرسوم البيانية (CORR 2018)
- Metapath2Vec من Dong et al. : Metapath2VEC: التعلم التمثيل القابل للتطوير للشبكات غير المتجانسة (KDD 2017) [ مثال ]
- جميع المتغيرات من أجهزة الرسم البياني التلقائي وأدوات التواصل التلقائي المتغير من:
- أدوات الرسم البياني المتنوع من KIPF و Welling (NIPS-W 2016) [ مثال ]
- الرسم البياني المنتظم بشكل نسدي لتضمين الرسم البياني من Pan et al. (IJCAI 2018) [ مثال ]
- الرسم البياني البسيط والفعال التلقائي مع نماذج خطية قفزة واحدة من Salha et al. (ECML 2020) [ مثال ]
- ختم من Zhang و Chen: التنبؤ Link بناءً على الشبكات العصبية الرسم البياني (Neups 2018) [ مثال ]
- رينيت من جين وآخرون. : شبكة الأحداث المتكررة للتفكير على الرسوم البيانية المعرفة الزمنية (ICLR-W 2019) [ مثال ]
- Graphunet من Gao و Ji: Graph U-Nets (ICML 2019) [ مثال ]
- منتبه من Xiong et al. : دفع حدود التمثيل الجزيئي لاكتشاف المخدرات مع آلية انتباه الرسم البياني (J. Med. Chem. 2020) [ مثال ]
- Deepgcn و Genconv من Li et al. : DEERGCNS: هل يمكن لـ GCNs أن تعمق مثل CNNs؟ (ICCV 2019) و Deepergcn: كل ما تحتاجه لتدريب GCNs العميقة (Corr 2020) [ مثال ]
- المستقيم من وانغ وآخرون. : تضمين الشبكة مع ملصقات متوازنة تمامًا (TKDE 2020) [ مثال ]
- Gnnexplainer من Ying et al. : Gnnexplainer: توليد تفسيرات للشبكات العصبية الرسم البياني (Neups 2019) [ example1 ، example2 ، example3 ]
- الشبكات العصبية أقل من الرسم البياني من Zhang et al. : الشبكات العصبية الخالية من الرسم البياني: تدريس الحيل الجديدة MLPs عبر التقطير (CORR 2021) [ مثال ]
- Linkx من Lim et al. : التعلم على نطاق واسع على الرسوم البيانية غير المتجانسة: معايير جديدة وطرق بسيطة قوية (Neups 2021) [ مثال ]
- Revgnn من Li et al. : تدريب الرسم البياني العصبي مع 1000 طبقة (ICML 2021) [ مثال ]
- Transe من Bordes et al. : ترجمة التضمينات لنمذجة البيانات متعددة العلاقات العليا (NIPS 2013) [ مثال ]
- مجمع من Troleon et al. : تضمينات معقدة للتنبؤ بالارتباط البسيط (ICML 2016) [ مثال ]
- Distmult من Yang et al. : دمج الكيانات والعلاقات للتعلم والاستدلال في قواعد المعرفة (ICLR 2015) [ مثال ]
- تدوير من Sun et al. : تدوير: رسم بياني للمعرفة عن طريق الدوران العلائقي في الفضاء المعقد (ICLR 2019) [ مثال ]
مشغلات GNN والمرافق: تأتي PYG مع مجموعة غنية من مشغلي الشبكات العصبية التي تستخدم عادة في العديد من نماذج GNN. إنهم يتبعون تصميمًا قابلًا للتوسع: من السهل تطبيق هذه المشغلين وأدوات الرسم البياني على طبقات GNN الحالية والموديلات لتحسين أداء النموذج.
- Dropedge من Rong et al. : Dropedge: نحو الرسم البياني العميق الشبكات التلافيفية على تصنيف العقدة (ICLR 2020)
- dropnode ، maskfeature و addrandomegge منك وآخرون. : الرسم البياني التعلم التباين مع زيادة (Neups 2020)
- Droppath من Li et al. : Maskgae: Masked Graph Modeling تلبي الرسم البياني Autoenders (Arxiv 2022)
- Shufflenode من Veličković et al. : Deep Graph InfoMax (ICLR 2019)
- Graphnorm من Cai et al. : Graphnorm: نهج مبدئي لتسريع التدريب على الشبكة العصبية (ICML 2021)
- GDC من Klicpera et al. : الانتشار يحسن تعلم الرسم البياني (Neurips 2019) [ مثال ]
توسيع لرؤية جميع مشغلي ومرافق GNN المنفذة ...
- Graphsizenorm من Dwivedi et al. : القياس الرسم البياني الشبكات العصبية (Corr 2020)
- Pairnorm من Zhao و Akoglu: Pairnorm: معالجة الزائد في GNNS (ICLR 2020)
- MeanuBtractionNorm من Yang et al. : إعادة النظر في "الإفراط في التغلب" في GCNs العميقة (Corr 2020)
- Diffgroupnorm من Zhou et al. : نحو الرسم البياني الأعمق الشبكات العصبية مع تطبيع مجموعة قابلة للتمييز (Neurips 2020)
- تحلل الشجرة من جين وآخرون. : الوصلات التلقائية لتنوع شجرة الوصلات لتوليد الرسم البياني الجزيئي (ICML 2018)
- TGN من Rossi et al. : شبكات الرسم البياني الزمني للتعلم العميق على الرسوم البيانية الديناميكية (GRL+ 2020) [ مثال ]
- Weisfeiler Lehman Operator من Weisfeiler و Lehman: تخفيض رسم بياني إلى شكل قانوني وجبر ينشأ خلال هذا التخفيض (Nauchno-Technicheskaya Informatsia 1968) [ مثال ]
- مستمر Weisfeiler Lehman Operator من Togninalli et al. : Wasserstein Weisfeiler-Lehman Graph Kernels (Neups 2019)
- انتشار الملصقات من Zhu و Ghahramani: التعلم من البيانات المسمى وغير المسمى مع انتشار الملصقات (CMU-Cald 2002) [ مثال ]
- ملف تعريف الدرجة المحلية من CAI و Wang: خط أساس بسيط ولكنه فعال لتصنيف الرسم البياني غير الجريمة (CORR 2018)
- repactandsmooth من هوانغ وآخرون. : الجمع بين انتشار الملصقات والنماذج البسيطة خارج الأداء الشبكات العصبية (CORR 2020) [ مثال ]
- جيني وتنظيم BRO من هندرسون وآخرون. : تحسين الشبكة العصبية الرسم البياني الجزيئي مع القابلية للاختراق مع تقويم العظام والتفاؤل المستحث (ICML 2021)
- Rootedegonets و RootedRwsubgraph من Zhao et al. : من النجوم إلى الفرعية: رفع أي GNN مع الوعي الهيكل المحلي (ICLR 2022)
- الميزات من روسي وآخرون. : حول الفعالية غير المعقولة لانتشار الميزات في التعلم على الرسوم البيانية مع ميزات العقدة المفقودة (CORR 2021)
GNNs القابلة للتطوير: تدعم PYG تنفيذ الشبكات العصبية الرسم البياني التي يمكن أن تتوسع في الرسوم البيانية على نطاق واسع. مثل هذا التطبيق يمثل تحديًا لأن الرسم البياني بأكمله ، لا يمكن أن تتناسب ميزاته المرتبطة به ومعلمات GNN مع ذاكرة GPU. العديد من أساليب قابلية التوسع الحديثة تعالج هذا التحدي من خلال أخذ عينات من الأحياء للتدريب المصغر ، وتجميع الرسوم البيانية وتقسيمها ، أو باستخدام نماذج GNN مبسطة. تم تنفيذ هذه الأساليب في PYG ، ويمكن أن تستفيد من طبقات GNN أعلاه والمشغلين والنماذج.
- جار التحميل من هاميلتون وآخرون. : التمثيل الاستقرائي تعلم الرسوم البيانية الكبيرة (NIPS 2017) [ example1 ، example2 ، example3 ]
- Clustergcn من Chiang et al. : Cluster-GCN: خوارزمية فعالة لتدريب الشبكات التلافيفية الرسم البياني العميق والكبير (KDD 2019) [ example1 ، example2 ]
- Graphsaint من Zeng et al. : Graphsaint: طريقة التعلم الاستقرائي القائم على أخذ العينات الرسم البياني (ICLR 2020) [ مثال ]
توسيع لرؤية جميع gnns القابلة للتطوير ...
- الظل من Zeng et al. : فصل عمق ونطاق الشبكات العصبية الرسم البياني (Neurips 2021) [ مثال ]
- علامة من روسي وآخرون. : علامة: الرسم البياني للبدء القابل للتطوير الشبكات العصبية (CORR 2020) [ مثال ]
- hgtloader من هو وآخرون. : محول الرسم البياني غير المتجانس (www 2020) [ مثال ]
تثبيت
PYG متاح للبيثون 3.9 إلى بيثون 3.12.
أناكوندا
يمكنك الآن تثبيت PYG عبر Anaconda لجميع مجموعات OS/Pytorch/CUDA الرئيسية؟ إذا لم تكن قد قمت بتثبيت Pytorch ، فقم بتثبيته عبر conda كما هو موضح في وثائق Pytorch الرسمية. بالنظر إلى أنك قمت بتثبيت Pytorch ( >=1.8.0 ) ، ما عليك سوى تشغيل
pypi
من PYG 2.3 فصاعدًا ، يمكنك تثبيت PYG واستخدامه دون أي مكتبة خارجية مطلوبة باستثناء Pytorch. لهذا ، ببساطة الجري
pip install torch_geometric
مكتبات إضافية
إذا كنت ترغب في استخدام مجموعة كاملة من الميزات من PYG ، فهناك العديد من المكتبات الإضافية التي قد ترغب في تثبيتها:
-
pyg-lib : عوامل GNN غير المتجانسة وإجراءات أخذ عينات الرسوم البيانية -
torch-scatter : تخفيضات متناثرة وفعالة -
torch-sparse : دعم SparseTensor -
torch-cluster : إجراءات تجميع الرسم البياني -
torch-spline-conv : دعم SplineConv
تأتي هذه الحزم مع تطبيقات CPU و GPU kernel الخاصة بها بناءً على واجهة تمديد Pytorch C ++/CUDA/HIP (ROCM). للاستخدام الأساسي لـ PYG ، تكون هذه التبعيات اختيارية تمامًا . نوصي بالبدء بأقل قدر من التثبيت ، وتثبيت تبعيات إضافية بمجرد البدء في الحاجة إليها بالفعل.
لسهولة تثبيت هذه الامتدادات ، نقدم عجلات pip لجميع مجموعات OS/Pytorch/CUDA الرئيسية ، انظر هنا.
Pytorch 2.5
لتثبيت الثنائيات لـ Pytorch 2.5.0 ، ما عليك سوى تشغيل
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.5.0+${CUDA}.html
حيث يجب استبدال ${CUDA} إما cpu أو cu118 أو cu121 أو cu124 اعتمادًا على تثبيت pytorch.
| cpu | cu118 | cu121 | cu124 |
|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| النوافذ | ✅ | ✅ | ✅ | ✅ |
| ماكوس | ✅ | | | |
Pytorch 2.4
لتثبيت الثنائيات لـ Pytorch 2.4.0 ، ما عليك سوى التشغيل
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.4.0+${CUDA}.html
حيث يجب استبدال ${CUDA} إما cpu أو cu118 أو cu121 أو cu124 اعتمادًا على تثبيت pytorch.
| cpu | cu118 | cu121 | cu124 |
|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| النوافذ | ✅ | ✅ | ✅ | ✅ |
| ماكوس | ✅ | | | |
ملاحظة: يتم توفير ثنائيات الإصدارات القديمة أيضًا لـ Pytorch 1.4.0 ، Pytorch 1.5.0 ، Pytorch 1.6.0 ، Pytorch 1.7.0/1.7.1 ، Pytorch 1.8.0/1.8.1 ، Pytorch 1.9.0 ، Pytorch 1.10.0/1.10.1/1.10.2 ، Pytor 1.11.0 ، 1.12.0/1.12.1 ، pytorch 1.13.0/1.13.1 ، pytorch 2.0.0/2.0.1 ، pytorch 2.1.0/2.1.1/2.1.2 ، pytorch 2.2.0/2.2.2/2.2.2 ، و pytorch 2.3.0/2.3.1 (بعد نفس الإجراء). بالنسبة للإصدارات القديمة ، قد تحتاج إلى تحديد أحدث رقم إصدار مدعوم أو تثبيت عبر pip install --no-index من أجل منع التثبيت اليدوي من المصدر. يمكنك البحث عن أحدث رقم إصدار مدعوم هنا.
حاوية nvidia pyg
توفر Nvidia حاوية Pyg Docker للتدريب دون عناء ونشر GPU المتسارعة مع PYG ، انظر هنا.
ليلا وماجستير
في حال كنت ترغب في تجربة أحدث ميزات PYG التي لم يتم إصدارها بالكامل بعد ، إما تثبيت الإصدار الليلي من PYG عبر
أو تثبيت PYG من Master عبر
pip install git+https://github.com/pyg-team/pytorch_geometric.git
عجلات ROCM
يوفر مستودع pyg-rocm-build الخارجي عجلات وتعليمات مفصلة حول كيفية تثبيت PYG لـ ROCM. إذا كان لديك أي أسئلة حول هذا الموضوع ، فيرجى فتح مشكلة هنا.
استشهد
يرجى الاستشهاد بالورقة (والأوراق المعنية للطرق المستخدمة) إذا كنت تستخدم هذا الرمز في عملك الخاص:
@inproceedings{Fey/Lenssen/2019,
title={Fast Graph Representation Learning with {PyTorch Geometric}},
author={Fey, Matthias and Lenssen, Jan E.},
booktitle={ICLR Workshop on Representation Learning on Graphs and Manifolds},
year={2019},
}
لا تتردد في مراسلتنا عبر البريد الإلكتروني إذا كنت ترغب في إدراج عملك في الموارد الخارجية. إذا لاحظت أي شيء غير متوقع ، فيرجى فتح مشكلة وإخبارنا بذلك. إذا كان لديك أي أسئلة أو تفتقد ميزة محددة ، فلا تتردد في مناقشتها معنا. نحن متحمسون لجعل Pyg أفضل باستمرار.