/L3Net

ICLR 2021 (spotlight): Graph Convolution with Low-rank Learnable Local Filters

Primary LanguagePython

Graph Convolution with Low-rank Learnable Local Filters

This repo is code for the toy example 'up/down wind' in section 3 of our paper: Graph Convolution with Low-rank Learnable Local Filters (paper link)

This toy example aims to show our l3gnn's expressiveness of extract discriminative features on graph to classify 'up wind' pattern against 'down wind' pattern.

up_down_wind

Requirements

pytorch==1.3.1

numpy==1.18.1

Usage

Create 'Up/Down Wind' dataset

## generate ring graph data
python gen_data.py ring
## generate chain graph data
python gen_data.py chain

This will create dataset with indicated type of graph, with 5000 'Up Wind' randomly generated samples and 5000 'Down Wind' samples.

Run experiment with 2-layer model

## ChebNet with L=30, on chain graph data
python train.py 2 chain --gcn_type ChebNet --L 30
## L3-gnn with order 0,1,2, on chain graph data
python train.py 2 chain --gcn_type GCN_Bases --order_list 0 1 2
## L3-gnn with order 1, shared bases, on chain graph data
python train.py 2 chain --gcn_type GCN_Bases --order_list 1 --use_shared_bases

Run experiment 1-layer model

## L3-gnn with order 0,1,2, on chain graph data
python train.py 1 chain --gcn_type GCN_Bases --order_list 0 1 2