Dokumentasi | Kertas | Colab Notebooks and Video Tutorials | Sumber Daya Eksternal | Contoh OGB
PYG (Pytorch Geometric) adalah perpustakaan yang dibangun di atas Pytorch untuk dengan mudah menulis dan melatih grafik jaringan saraf (GNNs) untuk berbagai aplikasi yang terkait dengan data terstruktur.
Ini terdiri dari berbagai metode untuk pembelajaran mendalam pada grafik dan struktur tidak teratur lainnya, juga dikenal sebagai geometris pembelajaran mendalam , dari berbagai makalah yang diterbitkan. Selain itu, ini terdiri dari loader mini-batch yang mudah digunakan untuk beroperasi pada banyak grafik raksasa kecil dan tunggal, multi-pendukung DataPipe , torch.compile .
Klik di sini untuk bergabung dengan komunitas Slack kami!
- Sorotan perpustakaan
- Tur cepat untuk pengguna baru
- Tinjauan Arsitektur
- Model GNN yang diimplementasikan
- Instalasi
Sorotan perpustakaan
Apakah Anda seorang peneliti pembelajaran mesin atau pengguna alat pembelajaran mesin pertama kali, berikut adalah beberapa alasan untuk mencoba PYG untuk pembelajaran mesin pada data yang terstruktur grafik.
- API yang mudah digunakan dan terpadu : Yang diperlukan hanyalah 10-20 baris kode untuk memulai dengan melatih model GNN (lihat bagian selanjutnya untuk tur cepat). PYG adalah Pytorch-on-the-rocks : Ini menggunakan API Tensor-sentris dan membuat prinsip-prinsip desain dekat dengan vanilla pytorch. Jika Anda sudah terbiasa dengan Pytorch, memanfaatkan PYG langsung.
- Model GNN yang komprehensif dan terawat baik : Sebagian besar arsitektur jaringan saraf yang canggih telah diimplementasikan oleh pengembang perpustakaan atau penulis makalah penelitian dan siap diterapkan.
- Fleksibilitas hebat : Model PYG yang ada dapat dengan mudah diperluas untuk melakukan penelitian Anda sendiri dengan GNNs. Membuat modifikasi pada model yang ada atau membuat arsitektur baru sederhana, berkat pesan yang mudah digunakan API, dan berbagai operator dan fungsi utilitas.
- Model GNN dunia nyata skala besar : Kami fokus pada kebutuhan aplikasi GNN dalam skenario dunia nyata yang menantang, dan mendukung pembelajaran pada beragam jenis grafik, termasuk tetapi tidak terbatas pada: GNNs yang dapat diskalakan untuk grafik dengan jutaan node; GNN dinamis untuk prediksi simpul dari waktu ke waktu; GNN heterogen dengan beberapa jenis simpul dan jenis tepi.
Tur cepat untuk pengguna baru
Dalam tur cepat ini, kami menyoroti kemudahan membuat dan melatih model GNN dengan hanya beberapa baris kode.
Latih model GNN Anda sendiri
Dalam pandangan pertama PYG, kami menerapkan pelatihan GNN untuk mengklasifikasikan makalah dalam grafik kutipan. Untuk ini, kami memuat dataset CORA, dan membuat model GCN 2-lapis sederhana menggunakan GCNConv yang telah ditentukan sebelumnya:
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 ) Kami sekarang dapat mengoptimalkan model dalam loop pelatihan, mirip dengan prosedur pelatihan Pytorch standar.
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 () Informasi lebih lanjut tentang mengevaluasi kinerja model akhir dapat ditemukan dalam contoh yang sesuai.
Buat lapisan GNN Anda sendiri
Selain aplikasi GNNs yang ada, PYG membuatnya mudah untuk mengimplementasikan jaringan saraf grafik khusus (lihat di sini untuk tutorial yang menyertainya). Sebagai contoh, hanya ini yang diperlukan untuk mengimplementasikan lapisan konvolusional tepi dari Wang et al. :
$$ x_i^{ prime} ~ = ~ max_ {j in mathcal {n} (i)} ~ textrm {mlp} _ { theta} left ([~ x_i, ~ x_j - x_i ~] kanan) $$ ([~ x_i, ~ x_j - x_i ~] kanan) $$ (~ x_i, ~ x_j - x_i ~
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] Tinjauan Arsitektur
PYG menyediakan kerangka kerja multi-lapisan yang memungkinkan pengguna untuk membangun solusi jaringan saraf grafik pada tingkat rendah dan tinggi. Itu terdiri dari komponen berikut:
- Mesin PYG menggunakan kerangka pembelajaran pytorch yang kuat dengan
torch.compile lengkap pyg-lib - Penyimpanan PYG menangani pemrosesan data, transformasi, dan pipa yang memuat. Ini mampu menangani dan memproses dataset grafik skala besar, dan memberikan solusi yang efektif untuk grafik yang heterogen. Lebih lanjut menyediakan berbagai solusi pengambilan sampel, yang memungkinkan pelatihan GNN pada grafik skala besar.
- Operator PYG menggabungkan fungsionalitas penting untuk mengimplementasikan jaringan saraf grafik. PYG mendukung blok bangunan GNN penting yang dapat digabungkan dan diterapkan pada berbagai bagian model GNN, memastikan fleksibilitas desain GNN yang kaya.
- Akhirnya, PYG menyediakan serangkaian model GNN yang berlimpah, dan contoh -contoh yang menampilkan model GNN pada tolok ukur grafik standar. Berkat fleksibilitasnya, pengguna dapat dengan mudah membangun dan memodifikasi model GNN khusus agar sesuai dengan kebutuhan spesifik mereka.
Model GNN yang diimplementasikan
Kami daftar saat ini mendukung model PYG, lapisan dan operator sesuai dengan kategori:
Lapisan GNN: Semua lapisan jaringan saraf grafik diimplementasikan melalui antarmuka nn.MessagePassing . Lapisan GNN menentukan cara melakukan lewat pesan, yaitu dengan merancang berbagai pesan, agregasi, dan fungsi pembaruan sebagaimana didefinisikan di sini. Lapisan GNN ini dapat ditumpuk bersama untuk membuat model jaringan saraf grafik.
- GCNCONV dari KIPF dan Welling: Klasifikasi semi-diawasi dengan Grafik Convolutional Networks (ICLR 2017) [ Contoh ]
- Chebconv dari Defferrard et al. : Jaringan saraf konvolusional pada grafik dengan pemfilteran spektral terlokalisasi cepat (NIPS 2016) [ Contoh ]
- Gatconv dari Veličković et al. : Graph Attention Networks (ICLR 2018) [ Contoh ]
Perluas untuk melihat semua lapisan GNN yang diimplementasikan ...
- GCN2CONV dari Chen et al. : Jaringan konvolusional grafik sederhana dan dalam (ICML 2020) [ Contoh1 , Contoh2 ]
- Splineconv dari Fey et al. : Splinecnn: Pembelajaran mendalam geometris cepat dengan kernel B-spline kontinu (CVPR 2018) [ Contoh1 , Contoh2 ]
- NNCONV dari Gilmer et al. : Pesan saraf yang lewat untuk kimia kuantum (ICML 2017) [ Contoh1 , Contoh2 ]
- CGCONV dari Xie dan Grossman: Crystal Graph Convolutional Neural Networks untuk prediksi properti material yang akurat dan dapat ditafsirkan (Letters Tinjauan Fisik 120, 2018)
- ECCONV dari Simonovsky dan Komodakis: Konvolusi yang dikondisikan oleh Edge pada Grafik (CVPR 2017)
- EGCONV dari Tailor et al. : Filter adaptif dan fusi agregator untuk konvolusi grafik yang efisien (GNNSYS 2021) [ Contoh ]
- GATV2CONV dari Brody et al. : Seberapa penuh perhatian jaringan perhatian grafik? (ICLR 2022)
- Transformerconv dari Shi et al. : Prediksi label bertopeng: Model lewat pesan terpadu untuk klasifikasi semi-diawasi (CORR 2020) [ Contoh ]
- Sageconv dari Hamilton et al. : Pembelajaran Representasi Induktif pada Grafik Besar (NIPS 2017) [ Contoh1 , Contoh2 , Contoh3 , Contoh4 ]
- Grafik dari, misalnya , Morris et al. : Weisfeiler dan Leman Go Neural: Grafik Tinggi Jaringan Neural (AAAI 2019)
- GatedGraphConv dari Li et al. : Gated Graph Sequence Neural Networks (ICLR 2016)
- ResgatedGraphConV dari Bresson dan Laurent: Residual Gated Graph Convnets (CORR 2017)
- Ginconv dari Xu et al. : Seberapa kuat grafik jaringan saraf? (ICLR 2019) [ Contoh ]
- Gineconv dari Hu et al. : Strategi untuk grafik pra-pelatihan jaringan saraf (ICLR 2020)
- Armaconv dari Bianchi et al. : Grafik Jaringan Saraf Dengan Filter ARMA Convolutional (CORR 2019) [ Contoh ]
- SGCONV dari Wu et al. : Menyederhanakan Grafik Jaringan Konvolusional (CORR 2019) [ Contoh ]
- APPNP dari Klicpera et al. : Prediksi kemudian merambat: Grafik Jaringan Saraf Temui PageRank yang dipersonalisasi (ICLR 2019) [ Contoh ]
- MFCONV dari Duvenaud et al. : Jaringan konvolusional pada grafik untuk belajar sidik jari molekuler (NIPS 2015)
- Agnnconv dari Thekumparampil et al. : Grafik Berbasis Perhatian Jaringan Saraf untuk Pembelajaran Semi-Diawasi (CORR 2017) [ Contoh ]
- TagConv dari Du et al. : Topologi Networks Convolutional Graph Adaptive (CORR 2017) [ Contoh ]
- PNACONV dari Corso et al. : Agregasi lingkungan utama untuk grafik jaring (CORR 2020) [ Contoh ]
- Faconv dari Bo et al. : Di luar informasi frekuensi rendah dalam jaringan konvolusional grafik (AAAI 2021)
- PDNCONV dari Rozemberczki et al. : Pathfinder Discovery Networks for Neural Message Passing (www 2021)
- RGCNCONV dari Schlichtkrull et al. : Pemodelan Data Relasional Dengan Grafik Jaringan Konvolusional (ESWC 2018) [ Contoh1 , Contoh2 ]
- RGATCONV dari Busbridge et al. : Jaringan Perhatian Grafik Relasional (CORR 2019) [ Contoh ]
- FilmConv dari Brockschmidt: GNN-Film: Grafik Jaringan Saraf dengan Modulasi Linear Fitur-Wise (ICML 2020) [ Contoh ]
- SignedConv dari Derr et al. : Network Convolutional Grafik yang Ditandatangani (ICDM 2018) [ Contoh ]
- DNACONV DARI FEY: Just JUMP: Agregasi Lingkungan Dinamis dalam Grafik Neural Networks (ICLR-W 2019) [ Contoh ]
- Panconv dari Ma et al. : Path Convolution dan Pooling Berbasis Integral untuk Grafik Jaringan Saraf (Neurips 2020)
- PointNetConV (termasuk pengambilan sampel titik terjauh iteratif , pembuatan grafik dinamis berdasarkan tetangga terdekat atau jarak maksimum , dan interpolasi K-NN untuk upampling) dari Qi et al. : Pointnet: pembelajaran mendalam pada set poin untuk klasifikasi dan segmentasi 3D (CVPR 2017) dan PointNet ++: Pembelajaran fitur hierarki yang dalam pada set titik dalam ruang metrik (NIPS 2017) [ Contoh1 , Contoh2 ]
- Edgeconv dari Wang et al. : Grafik dinamis CNN untuk belajar di titik awan (corr, 2018) [ contoh1 , contoh2 ]
- XCONV dari Li et al. : Pointcnn: konvolusi pada titik-titik yang ditransformasi X (Neurips 2018) [ Contoh ]
- PPFCONV dari Deng et al. : PPFNET: Global Context Aware Fitur Lokal untuk pencocokan poin 3D yang kuat (CVPR 2018)
- GMMCONV dari Monti et al. : Pembelajaran mendalam geometris pada grafik dan manifold menggunakan model campuran CNNs (CVPR 2017)
- Feastconv dari Verma et al. : FeastNet: Konvolusi grafik yang dikemudikan fitur untuk analisis bentuk 3D (CVPR 2018)
- PointTransformerConv dari Zhao et al. : Point transformer (2020)
- Hypergraphconv dari Bai et al. : Konvolusi Hypergraph dan Perhatian Hypergraph (CORR 2019)
- GravnetConv dari Qasim et al. : Representasi pembelajaran geometri partikel-detektor yang tidak teratur dengan jaringan grafik tertimbang jarak (Jurnal Fisika Eropa C, 2019)
- Supergat dari Kim dan OH: Cara Menemukan Lingkungan Anda yang Ramah: Desain Perhatian Grafik Dengan Sandan Sandan (ICLR 2021) [ Contoh ]
- Hgtconv dari Hu et al. : Transformator grafik heterogen (www 2020) [ Contoh ]
- Heatconv dari Mo et al. : Jaringan perhatian grafik yang ditingkatkan tepi heterogen untuk prediksi lintasan multi-agen (CORR 2021)
- SSGCONV dari Zhu et al. : Konvolusi grafik spektral sederhana (ICLR 2021)
- Fusedgatconv dari Zhang et al. : Memahami Grafik Komputasi GNN: Komputasi Terkoordinasi, IO, dan Perspektif Memori (MLSYS 2022)
- GPSCONV dari Rampášek et al. : Resep untuk transformator grafik umum, kuat, scalable (Neurips 2022) [ Contoh ]
Lapisan Pooling: Lapisan grafik menggabungkan representasi vektoral dari satu set node dalam grafik (atau subgraph) menjadi representasi vektor tunggal yang merangkum sifat -sifat node. Ini umumnya diterapkan pada tugas-tugas tingkat grafik, yang membutuhkan menggabungkan fitur node ke dalam representasi grafik tunggal.
- Top-K Pooling dari Gao dan JI: Graph U-Nets (ICML 2019), Cangea et al. : Menuju pengklasifikasi grafik hierarkis yang jarang (Neurips-W 2018) dan Knyazev et al. : Memahami perhatian dan generalisasi dalam jaringan saraf grafik (ICLR-W 2019) [ Contoh ]
- Diffpool dari Ying et al. : Pembelajaran Representasi Grafik Hierarkis dengan Pooling yang Dapat Diferensial (Neurips 2018) [ Contoh ]
Perluas untuk melihat semua lapisan pengumpulan yang diimplementasikan ...
- Agregasi perhatian dari Li et al. : Jaringan pencocokan grafik untuk mempelajari kesamaan objek terstruktur grafik (ICML 2019) [ Contoh ]
- Set2set dari Vinyals et al. : Pesanan Matter: Urutan ke urutan untuk set (ICLR 2016) [ Contoh ]
- Urutkan agregasi dari Zhang et al. : Arsitektur pembelajaran mendalam ujung ke ujung untuk klasifikasi grafik (AAAI 2018) [ Contoh ]
- Pooling Mincut dari Bianchi et al. : Pengelompokan spektral dengan grafik jaringan saraf untuk pengumpulan grafik (ICML 2020) [ Contoh ]
- Pooling DMon dari Tsitsulin et al. : Grafik clustering dengan grafik jaringan saraf (CORR 2020) [ Contoh ]
- Graclus Pooling dari Dhillon et al. : Pemotongan grafik tertimbang tanpa vektor eigen: pendekatan bertingkat (PAMI 2007) [ Contoh ]
- Voxel Grid Pooling dari, misalnya , Simonovsky dan Komodakis: filter yang dikondisikan oleh tepi dinamis dalam jaringan saraf konvolusional pada grafik (CVPR 2017) [ Contoh ]
- Pooling SAG dari Lee et al. : Pooling grafik diri (ICML 2019) dan Knyazev et al. : Memahami perhatian dan generalisasi dalam jaringan saraf grafik (ICLR-W 2019) [ Contoh ]
- Pooling tepi dari Diehl et al. : Menuju Grafik Pooling By Edge Contraction (ICML-W 2019) dan Diehl: Edge Contraction Pooling untuk Grafik Neural Networks (CORR 2019) [ Contoh ]
- Asapooling dari Ranjan et al. : ASAP: Struktur Adaptif Sadar Pooling untuk Belajar Representasi Grafik Hirarki (AAAI 2020) [ Contoh ]
- Panpooling dari Ma et al. : Path Convolution dan Pooling Berbasis Integral untuk Grafik Jaringan Saraf (Neurips 2020)
- Mempooling dari Khasahmadi et al. : Jaringan grafik berbasis memori (ICLR 2020) [ Contoh ]
- Transformator multiset grafik dari Baek et al. : Pembelajaran yang akurat dari representasi grafik dengan grafik multiset pooling (ICLR 2021) [ Contoh ]
- Agregasi keseimbangan dari Bartunov et al. : (UAI 2022) [ Contoh ]
Model GNN: Model GNN kami yang didukung menggabungkan beberapa lapisan lulus pesan, dan pengguna dapat secara langsung menggunakan model yang telah ditentukan ini untuk membuat prediksi pada grafik. Tidak seperti penumpukan lapisan GNN yang sederhana, model-model ini dapat melibatkan pra-pemrosesan, parameter tambahan yang dapat dipelajari, koneksi lewati, kerajaan grafik, dll.
- Schnet dari Schütt et al. : Schnet: jaringan saraf konvolusional filter kontinu untuk pemodelan interaksi kuantum (NIPS 2017) [ contoh ]
- Dimenet dan Dimenetplusplus dari Klicpera et al. : Pesan terarah lulus untuk grafik molekul (ICLR 2020) dan pesan terarah yang cepat dan tidak pasti untuk molekul non-kesetimbangan (Neurips-W 2020) [ Contoh ]
- NODE2VEC dari Grover dan Leskovec: Node2Vec: Scalable Feature Learning for Networks (KDD 2016) [ Contoh ]
- Infomax grafik dalam dari Veličković et al. : Deep Graph Infomax (ICLR 2019) [ Contoh1 , Contoh2 ]
- Infomax grafik multiplex yang dalam dari Park et al. : Embedding jaringan multipleks yang tidak diawasi tanpa pengawasan (AAAI 2020) [ Contoh ]
- Prediksi label bertopeng dari Shi et al. : Prediksi label bertopeng: Model lewat pesan terpadu untuk klasifikasi semi-diawasi (CORR 2020) [ Contoh ]
- PMLP dari Yang et al. : Grafik jaringan saraf pada dasarnya adalah generalisasi yang baik: wawasan dengan menjembatani GNN dan MLP (ICLR 2023)
Perluas untuk melihat semua model GNN yang diimplementasikan ...
- Lompatan pengetahuan dari Xu et al. : Pembelajaran Representasi pada Grafik dengan Jaringan Pengetahuan Jumping (ICML 2018) [ Contoh ]
- Metalayer untuk membangun segala jenis jaringan grafik yang mirip dengan perpustakaan TensorFlow Graph Nets dari Battaglia et al. : Bias induktif relasional, pembelajaran mendalam, dan jaringan grafik (CORR 2018)
- Metapath2vec dari Dong et al. : Metapath2vec: Pembelajaran Representasi yang Dapat Diukur untuk Jaringan Heterogen (KDD 2017) [ Contoh ]
- Semua varian autoencoder grafik dan autoencoder variasional dari:
- Variasional grafik auto-encoder dari KIPF dan Welling (NIPS-W 2016) [ Contoh ]
- Autoencoder grafik yang diatur secara bermusuhan untuk embedding grafik dari Pan et al. (IJCAI 2018) [ Contoh ]
- Autoencoder grafik sederhana dan efektif dengan model linier satu-hop dari Salha et al. (ECML 2020) [ Contoh ]
- Seal From Zhang dan Chen: Prediksi Tautan Berdasarkan Grafik Jaringan Saraf (Neurips 2018) [ Contoh ]
- Renet dari Jin et al. : Jaringan acara berulang untuk penalaran atas grafik pengetahuan temporal (ICLR-W 2019) [ Contoh ]
- Graphunet dari Gao dan Ji: Graph U-Nets (ICML 2019) [ Contoh ]
- Attentivefp dari Xiong et al. : Mendorong batas representasi molekuler untuk penemuan obat dengan mekanisme perhatian grafik (J. Med. Chem. 2020) [ Contoh ]
- Deepgcn dan Genconv dari Li et al. : Deepgcns: Bisakah GCN pergi sedalam CNNs? (ICCV 2019) dan Deepergcn: semua yang Anda butuhkan untuk melatih GCNS yang lebih dalam (CORR 2020) [ Contoh ]
- Rect dari Wang et al. : Network Embedding dengan label yang benar-benar tidak seimbang (TKDE 2020) [ Contoh ]
- GnNexplainer dari Ying et al. : GNNExplainer: Menghasilkan penjelasan untuk grafik jaringan saraf (Neurips 2019) [ Contoh1 , Contoh2 , Contoh3 ]
- Jaringan saraf tanpa grafik dari Zhang et al. : Neural Networks Grafik: Mengajar Trik Baru MLP lama melalui Distilasi (CORR 2021) [ Contoh ]
- Linkx dari Lim et al. : Pembelajaran skala besar pada grafik non-homofilus: tolok ukur baru dan metode sederhana yang kuat (Neurips 2021) [ Contoh ]
- Revgnn dari Li et al. : Grafik pelatihan saraf dengan 1000 lapisan (ICML 2021) [ Contoh ]
- Transe dari Bordes et al. : Menerjemahkan embeddings untuk memodelkan data multi-relasional (NIPS 2013) [ contoh ]
- Kompleks dari Trouillon et al. : Embeddings kompleks untuk prediksi tautan sederhana (ICML 2016) [ Contoh ]
- Distmult dari Yang et al. : Erting Entitas dan Hubungan untuk Pembelajaran dan Kesimpulan di Basis Pengetahuan (ICLR 2015) [ Contoh ]
- Putar dari Sun et al. : Rotate: Embedding Grafik Pengetahuan dengan Rotasi Relasional dalam Ruang Kompleks (ICLR 2019) [ Contoh ]
Operator dan utilitas GNN: PYG hadir dengan serangkaian operator jaringan saraf yang kaya yang biasa digunakan dalam banyak model GNN. Mereka mengikuti desain yang dapat diperluas: mudah untuk menerapkan operator dan utilitas grafik ini ke lapisan dan model GNN yang ada untuk lebih meningkatkan kinerja model.
- Dropedge dari Rong et al. : Dropedge: Menuju jaringan konvolusional grafik dalam pada klasifikasi simpul (ICLR 2020)
- DropNode , Maskfeature dan Addrandomedge dari Anda dkk. : Grafik pembelajaran kontras dengan augmentasi (Neurips 2020)
- Droppath dari Li et al. : Maskgae: Pemodelan grafik bertopeng memenuhi autoencoders grafik (ARXIV 2022)
- Shufflenode dari Veličković et al. : Deep Graph Infomax (ICLR 2019)
- Graphnorm dari Cai et al. : Graphnorm: Pendekatan Prinsip untuk Mempercepat Grafik Neural Network Training (ICML 2021)
- GDC dari Klicpera et al. : Difusi meningkatkan pembelajaran grafik (Neurips 2019) [ Contoh ]
Perluas untuk melihat semua operator dan utilitas GNN yang diimplementasikan ...
- Graphsizenorm dari Dwivedi et al. : Benchmarking Graph Neural Networks (CORR 2020)
- PairNorm dari Zhao dan Akoglu: Pairnorm: Menangani Oversmoothing Di GNNs (ICLR 2020)
- MeansubtractionNorm dari Yang et al. : Revisiting "Over-Smoothing" di Deep GCNs (CORR 2020)
- Diffgroupnorm dari Zhou et al. : Menuju jaringan saraf grafik yang lebih dalam dengan normalisasi kelompok yang dapat dibedakan (Neurips 2020)
- Dekomposisi pohon dari Jin et al. : Autoencoder variasional pohon persimpangan untuk generasi grafik molekul (ICML 2018)
- TGN dari Rossi et al. : Jaringan grafik temporal untuk pembelajaran mendalam pada grafik dinamis (GRL+ 2020) [ Contoh ]
- Operator Weisfeiler Lehman dari Weisfeiler dan Lehman: Pengurangan grafik menjadi bentuk kanonik dan aljabar yang timbul selama pengurangan ini (Nauchno-Technicheskaya Informatsia 1968) [ Contoh ]
- Operator Weisfeiler Lehman yang berkelanjutan dari Togninalli et al. : Wasserstein weisfeiler-lehman grafik kernel (Neurips 2019)
- Propagasi label dari Zhu dan Ghahramani: Belajar dari data berlabel dan tidak berlabel dengan propagasi label (CMU-CALD 2002) [ Contoh ]
- Profil Gelar Lokal dari CAI dan Wang: Baseline yang sederhana namun efektif untuk klasifikasi grafik non-atribut (CORR 2018)
- Koreksi dan Footh dari Huang et al. : Menggabungkan propagasi label dan model sederhana keluar-kinerja grafik jaringan saraf (CORR 2020) [ Contoh ]
- Gini dan regularisasi bro dari Henderson et al. : Meningkatkan grafik molekul neural network kemampuan penjelasan dengan ortonormalisasi dan sparsity terinduksi (ICML 2021)
- Rootedegonets dan rootedrwsubgraph dari Zhao et al. : Dari bintang ke subgraph: mengangkat GNN apa pun dengan kesadaran struktur lokal (ICLR 2022)
- Fiturepropagasi dari Rossi et al. : Pada efektivitas propagasi fitur yang tidak masuk akal dalam pembelajaran pada grafik dengan fitur simpul yang hilang (CORR 2021)
GNN yang dapat diskalakan: PYG mendukung implementasi jaringan saraf grafik yang dapat skala ke grafik skala besar. Aplikasi semacam itu menantang karena seluruh grafik, fitur terkait dan parameter GNN tidak dapat masuk ke dalam memori GPU. Banyak pendekatan skalabilitas canggih mengatasi tantangan ini dengan mengambil sampel lingkungan untuk pelatihan mini-batch, pengelompokan grafik dan partisi, atau dengan menggunakan model GNN yang disederhanakan. Pendekatan ini telah diimplementasikan dalam PYG, dan dapat mengambil manfaat dari lapisan GNN di atas, operator, dan model.
- Neighbroga Doader dari Hamilton et al. : Pembelajaran Representasi Induktif pada Grafik Besar (NIPS 2017) [ Contoh1 , Contoh2 , Contoh3 ]
- Clustergcn dari Chiang et al. : Cluster-GCN: Algoritma yang efisien untuk melatih jaringan konvolusional grafik yang dalam dan besar (KDD 2019) [ Contoh1 , Contoh2 ]
- Grafik dari Zeng et al. : GraphSaint: Metode Pembelajaran Induktif Berbasis Pengambilan Sampel Grafik (ICLR 2020) [ Contoh ]
Perluas untuk melihat semua GNNs yang dapat diskalakan yang diimplementasikan ...
- Bayangan dari Zeng et al. : Decoupling kedalaman dan ruang lingkup jaringan saraf grafik (Neurips 2021) [ Contoh ]
- Tanda dari Rossi et al. : Tanda: Grafik awal yang dapat diskalakan jaringan saraf (CORR 2020) [ Contoh ]
- Hgtloader dari Hu et al. : Transformator grafik heterogen (www 2020) [ Contoh ]
Instalasi
PYG tersedia untuk Python 3.9 ke Python 3.12.
Anaconda
Anda sekarang dapat menginstal PYG melalui Anaconda untuk semua kombinasi OS/Pytorch/CUDA utama? Jika Anda belum menginstal Pytorch, instal melalui conda seperti yang dijelaskan dalam dokumentasi Pytorch resmi. Mengingat bahwa Anda telah menginstal pytorch ( >=1.8.0 ), cukup jalankan
Pypi
Dari PYG 2.3 dan seterusnya, Anda dapat menginstal dan menggunakan PYG tanpa pustaka eksternal yang diperlukan kecuali untuk Pytorch. Untuk ini, cukup jalankan
pip install torch_geometric
Perpustakaan tambahan
Jika Anda ingin menggunakan set lengkap fitur dari PYG, ada beberapa perpustakaan tambahan yang mungkin ingin Anda instal:
-
pyg-lib : Operator GNN yang heterogen dan rutinitas pengambilan sampel grafik -
torch-scatter : Pengurangan jarang yang dipercepat dan efisien -
torch-sparse : Dukungan SparseTensor -
torch-cluster : Rutinitas pengelompokan grafik -
torch-spline-conv : Dukungan SplineConv
Paket -paket ini datang dengan implementasi kernel CPU dan GPU mereka sendiri berdasarkan antarmuka ekstensi Pytorch C ++/CUDA/HIP (ROCM). Untuk penggunaan dasar PYG, ketergantungan ini sepenuhnya opsional . Kami sarankan untuk memulai dengan instalasi minimal, dan menginstal dependensi tambahan setelah Anda mulai benar -benar membutuhkannya.
Untuk kemudahan pemasangan ekstensi ini, kami menyediakan roda pip untuk semua kombinasi OS/Pytorch/CUDA utama, lihat di sini.
Pytorch 2.5
Untuk menginstal binari untuk Pytorch 2.5.0, cukup jalankan
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
Di mana ${CUDA} harus diganti dengan cpu , cu118 , cu121 , atau cu124 tergantung pada instalasi Pytorch Anda.
| cpu | cu118 | cu121 | cu124 |
|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Windows | ✅ | ✅ | ✅ | ✅ |
| MacOS | ✅ | | | |
Pytorch 2.4
Untuk menginstal binari untuk Pytorch 2.4.0, cukup jalankan
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
Di mana ${CUDA} harus diganti dengan cpu , cu118 , cu121 , atau cu124 tergantung pada instalasi Pytorch Anda.
| cpu | cu118 | cu121 | cu124 |
|---|
| Linux | ✅ | ✅ | ✅ | ✅ |
| Windows | ✅ | ✅ | ✅ | ✅ |
| MacOS | ✅ | | | |
Note: Binaries of older versions are also provided for 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, PyTorch 1.11.0, PyTorch 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.1/2.2.2, dan Pytorch 2.3.0/2.3.1 (mengikuti PROSIS yang sama). Untuk versi yang lebih lama, Anda mungkin perlu secara eksplisit menentukan nomor versi terbaru yang didukung atau menginstal melalui pip install --no-index untuk mencegah instalasi manual dari sumber. Anda dapat mencari nomor versi terbaru yang didukung di sini.
Nvidia Pyg Container
NVIDIA menyediakan wadah PYG Docker untuk melatih dengan mudah dan menggunakan GPU GNNs yang dipercepat dengan PYG, lihat di sini.
Malam dan tuan
Jika Anda ingin bereksperimen dengan fitur PYG terbaru yang belum sepenuhnya dirilis, baik menginstal versi malam PYG via
atau instal PYG dari master via
pip install git+https://github.com/pyg-team/pytorch_geometric.git
Roda rocm
Repositori pyg-rocm-build eksternal menyediakan roda dan instruksi terperinci tentang cara menginstal PYG untuk ROCM. Jika Anda memiliki pertanyaan tentang hal itu, silakan buka masalah di sini.
Mengutip
Harap kutip makalah kami (dan makalah masing -masing dari metode yang digunakan) jika Anda menggunakan kode ini dalam pekerjaan Anda sendiri:
@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},
}
Jangan ragu untuk mengirim email kepada kami jika Anda ingin pekerjaan Anda terdaftar dalam sumber daya eksternal. Jika Anda melihat sesuatu yang tidak terduga, buka masalah dan beri tahu kami. Jika Anda memiliki pertanyaan atau kehilangan fitur tertentu, jangan ragu untuk mendiskusikannya dengan kami. Kami termotivasi untuk terus membuat PYG lebih baik.