In this JAX tutorial, I implemented a cluster GCN sampler similar to the one introduced in "Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks." I also trained a GCN network using the jraph library, both with full batches and mini-batches.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
🔗 notes+code: https://mashaan14.github.io/YouTube-channel/graph_neural_networks/2024_07_15_ClusterGCN_jax
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
- website https://mashaan14.github.io/mashaan/
- github https://github.com/mashaan14
- X https://twitter.com/mashaan_14
- linkedin https://linkedin.com/in/mashaan
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
- sponsor this channel on GitHub Sponsors:
https://github.com/sponsors/mashaan14
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
📹 Video edit: Adobe Premiere Rush
🎧 Audio enhancement: Adobe Podcast
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Chapters:
00:00 start
00:37 my last code wasn't efficient
07:36 indexing into sparse matrices
09:15 An example on sparse matrices indexing
12:45 Cluster-GCN paper
14:48 Metis paper
17:46 Graclus paper
28:42 why Metis not Graclus
29:20 start of the code
31:05 input for Metis
33:26 Cluster-GCN sampling
38:21 Sampling test on a toy graph
40:33 import Cora dataset
42:25 GCN training on a full batch
43:06 Cluster-GCN sampler on Cora dataset
44:36 making sure sampling works as expected
51:45 GCN training on mini batches
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
#graphneuralnetwork #GCN #graphconvolution #convolution #jraph #graph #GCN #GNNs #pytorchgeometric #GCNConv #GATConv #spectralclustering #NeighborLoader #ClusterLoader #jax #flax #clustergcn #GraphSAGE #DeepLearningTutorial #MachineLearningProject #AIResearch #CodingTutorial