Skip to content

BHuiwen/VPF

Repository files navigation

VP-GNN

This is the code for paper Augmenting Message Passing with Virtual Paths via Effective Resistance.

TL;DR

  • VP-GNN is a novel graph learning framework that effectively alleviates over-squashing without impairing the inherent graph structure.

Main Requirements

  • Python 3.10.13

    • conda create -n your_env_name python=3.10.13
  • torch 2.1.1 + cu118

    • pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118
  • Install causal_conv1d and mamba (you should download this from Vim)

    • pip install -e causal_conv1d>=1.1.0
    • pip install -e mamba-1p1p1
  • Install pyG:

    • pip install torch_geometric
    • pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.1.0+cu118.html
  • Install dgl: -pip install dgl==0.9.0

How to Run

Node Classification

Example Command:

python run_node_classification.py --rewiring=VP --dataset={$dataset} --layer_type={$model} --num_path={$num_path} --device={$device}

The arguments we consider in our paper:

  • dataset:
    • cora, texas, citeseer, wisconsin, cornell, squirrel
  • model:
    • VPaugGCN, VPaugGIN
  • num_path:
    • [5, 10, 15, 20, 25, 30]
  • device:
    • gpu number

If you want to run 100 tirals, add num_trials like below:

python run_node_classification.py --rewiring=VP --dataset={$dataset} --layer_type={$model} --num_path={$num_path} --device={$device}--num_trials=100

About

This is the code for paper **Augmenting Message Passing with Virtual Paths via Effective Resistance**.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages