# tkipf/gcn

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tkipf-gcn).**

7,361 stars · 2,011 forks · Python · mit

## Links

- GitHub: https://github.com/tkipf/gcn
- awesome-repositories: https://awesome-repositories.com/repository/tkipf-gcn.md

## Description

This is a graph convolutional network library designed for performing node and graph classification on graph-structured data. It functions as a framework for generating graph embeddings and implementing spectral convolutional neural networks to predict labels for nodes and entire graph structures.

The library provides specialized tools for spectral graph convolutions, utilizing Chebyshev polynomial approximations to perform feature aggregation. It includes a multi-graph processing framework that manages batches of different graph instances through block-diagonal adjacency matrices and pooling strategies.

The system supports semi-supervised node classification, where labels for unknown nodes are predicted using a small subset of labeled examples and structural connectivity. It also covers graph-level classification by aggregating node information into single vectors for whole-graph categorization.

## Tags

### Artificial Intelligence & ML

- [Graph Message Passing Frameworks](https://awesome-repositories.com/f/artificial-intelligence-ml/graph-message-passing-frameworks.md) — Provides frameworks for implementing neural message passing primitives to aggregate node and edge features.
- [Graph](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/frameworks/model-construction/neural-network-layers/convolution-layers/graph.md) — Aggregates neighborhood features using spectral convolutions or Chebyshev polynomial approximations within neural network layers. ([source](https://github.com/tkipf/gcn/blob/master/README.md))
- [Spectral Convolutions](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/frameworks/model-construction/neural-network-layers/convolution-layers/graph/spectral-convolutions.md) — Computes node representations by performing a Fourier transform on the graph Laplacian using learned filters.
- [Spectral Graph Convolution Tools](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/machine-learning-concepts/network-architectures-and-layers/image-convolutions/fast-fourier-convolutions/spectral-graph-convolution-tools.md) — Implements graph convolutions using spectral filters and Chebyshev polynomial approximations for feature aggregation.
- [Chebyshev Polynomial Approximations](https://awesome-repositories.com/f/artificial-intelligence-ml/polynomial-regression/chebyshev-polynomial-approximations.md) — Approximates spectral filters using truncated polynomials to avoid expensive eigendecomposition of the graph Laplacian.
- [Node Classification](https://awesome-repositories.com/f/artificial-intelligence-ml/semi-supervised-learning-pipelines/semi-supervised-classification/node-classification.md) — Predicts labels for unknown nodes in a graph using only a small set of labeled examples.
- [Graph Batching Optimizations](https://awesome-repositories.com/f/artificial-intelligence-ml/graph-batching-optimizations.md) — Provides optimized block-diagonal adjacency matrices to batch multiple graphs of different sizes for GPU processing.

### Part of an Awesome List

- [Graph Classification](https://awesome-repositories.com/f/awesome-lists/ai/graph-neural-networks/graph-classification.md) — Assigns single categories to entire graph structures by aggregating local node and edge features.
- [Graph Representation Learning](https://awesome-repositories.com/f/awesome-lists/ai/graph-representation-learning.md) — Creates low-dimensional vector representations of nodes that capture local topology and structural similarity. ([source](http://tkipf.github.io/graph-convolutional-networks/))
- [Batch](https://awesome-repositories.com/f/awesome-lists/ai/graph-neural-networks/graph-classification/batch.md) — Processes batches of graphs with varying sizes using block-diagonal adjacency matrices to generate labels. ([source](https://github.com/tkipf/gcn/blob/master/README.md))
- [Graph Pooling](https://awesome-repositories.com/f/awesome-lists/ai/graph-neural-networks/graph-pooling.md) — Implements global pooling layers to reduce node embeddings into a single vector for whole-graph classification.
- [Multi-Graph Processing Frameworks](https://awesome-repositories.com/f/awesome-lists/ai/graph-neural-networks/multi-graph-processing-frameworks.md) — Handles batches of different graph instances using block-diagonal adjacency matrices and pooling strategies.
- [Graph Neural Networks](https://awesome-repositories.com/f/awesome-lists/ai/graph-neural-networks.md) — Implementation of semi-supervised classification using graph convolutional networks.

### Data & Databases

- [Multi-Label Classifiers](https://awesome-repositories.com/f/data-databases/data-categorization/classification-labelers/multi-label-classifiers.md) — Predicts labels for individual nodes within a graph structure based on training from a small labeled subset.
- [Embedding Generation](https://awesome-repositories.com/f/data-databases/document-extraction-tools/embedding-generation.md) — Generates low-dimensional vector representations of nodes based on their structural connectivity within a graph.

### Scientific & Mathematical Computing

- [Adjacency-Based Feature Propagation](https://awesome-repositories.com/f/scientific-mathematical-computing/adjacency-based-feature-propagation.md) — Implements feature propagation by iteratively multiplying the adjacency matrix with node feature matrices.
