This blog is the implementation of the paper Semi-Supervised Classification With Graph Convolutional Networks by Kipf et al., ICLR 2017.

I have made a video based upon this notebook titled "The spelled-out intro to Graph Convolutional Network (GCN)". Watch the video here.

I’ve aimed to create a notebook that’s easy to understand. It begins with a simple graph, explaining the GCN formula step by step. I implemented the GCN model using PyTorch (without relying on specific graph libraries like PyTorch Geometric, DGL, etc.) on the Cora dataset. Additionally, I replicated a section of the paper called “Node Embeddings With Random Weights” using the Zachary Karate Club dataset. The goal was to demonstrate how GCN can be a powerful tool for extracting features from nodes in a graph.

Going ahead, I have also implemented all the variants of the GCN mentioned in the paper which are:

  • Single Parameter Model
  • 1st Order term only
  • 1st order model
  • Chebyshev Polynomials for k = 2
  • MLP