Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/CheriseZhu/GSSNN
The implementation of our AAAI 2020 paper "GSSNN: Graph Smoothing Splines Neural Network".
https://github.com/CheriseZhu/GSSNN
Last synced: 19 days ago
JSON representation
The implementation of our AAAI 2020 paper "GSSNN: Graph Smoothing Splines Neural Network".
- Host: GitHub
- URL: https://github.com/CheriseZhu/GSSNN
- Owner: CheriseZhu
- Created: 2019-11-14T12:30:17.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-07-30T12:32:45.000Z (over 4 years ago)
- Last Synced: 2024-08-01T17:24:46.628Z (4 months ago)
- Language: Python
- Size: 1.73 MB
- Stars: 20
- Watchers: 3
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-graph-classification - [Python Reference
README
# GSSNN
The implementation of our AAAI 2020 paper "[GSSNN: Graph Smoothing Splines Neural Network](https://www.researchgate.net/publication/337548602_GSSNN_Graph_Smoothing_Splines_Neural_Networks)".# Requirements
python == 3.6.2
torch == 1.1.0
numpy == 1.16.4
scipy == 1.2.0
networkx == 2.2
torch_scatter == 1.3.0
torch_geometric == 1.3.0# How to use
### Dataset
The data folder includes our propocessed data for training and testing.
The orginal datasets can be founded from [here](https://ls11-www.cs.tu-dortmund.de/people/morris/graphkerneldatasets).### Model
The model folder includes our proposed model "GSSNN".
The model/utils folder includes graph utils and Scaled Smoothing Splines module used in model.
The model/process_data file processes data and computes the graph centrality.
The torch_geometeric/nn/pool folder includes the designed NodeImportance layer used in model.
The torch_geometeric/nn/conv folder includes the convolutional layers used in model provides by [torch_geometeric](https://github.com/rusty1s/pytorch_geometric) library.
### Prameters Setting
dim: the hidden dimension of node feature
conv_layer: the number of convolutional layer
ss_layer: the number of smoothing splines layer
Mi: the number of knot used in smoothing splines layer i
epsilon: used in smoothing splines to guarantee the denominator non-zero
add_knot: whether to consider the important nodes features as residual connection to the graph-level representation
### Training/Testing
```
cd model
python process_data.py --dataset MUTAG
python GSSNN.py --dataset MUTAG --batch_size 128 --lr 0.01 --weight_decay 5e-4 --dim 32 --conv_layer 3 --ss_layer 2 --M1 5 --M2 5 --epsilon 1e-6 --add_knot True --epoch 100
python GSSNN_10_folds.py --dataset MUTAG --batch_size 128 --lr 0.01 --weight_decay 5e-4 --dim 32 --conv_layer 3 --ss_layer 2 --M1 5 --M2 5 --epsilon 1e-6 --add_knot True --epoch 100
```
# Citation
```
@inproceedings{zhu2020GSSNN
author={Shichao Zhu and Lewei Zhou and Shirui Pan and Chuan Zhou and Guiying Yan and Bin Wang},
title={GSSNN: Graph Smoothing Splines Neural Network},
journal={Proceedings of the 34th AAAI Conference on Artificial Intelligence},
year={2020}
}
```