Skip to content
forked from LARS-research/SNAG

Source code for CIKM-CSSA 2020 paper SNAG "Simplified Neural Architecture search for Graph Neural Networks".

Notifications You must be signed in to change notification settings

PestyVesty/SNAG

 
 

Repository files navigation

Modified SNAG

Note: Code from this repo file is originally from repo, for paper Simplified Neural Architecture search for Graph Neural Networks.

Unless specified at the top of a file, all code within a file originally belongs the authors of the original code.

Student: Sylvester Shan uid: u6049249

Note

Code for experiment described in chapter 3 can be found in folder MoleculePropertyPrediction. The readme.md file contains the information of how to run it.

Simplifying Architecture Search for Graph Neural Network

Overview

It is a neural architecture search (NAS) for graph neural network (GNN). To obtain optimal data-specific GNN architectures, we propose the SNAG framework, consisting of a simpler yet more expressive search space and a RL-based search algorithm.

The framewwork is implemented on top of GraphNAS and PyG.

Requirements

Following is the conda environment that's been used.

conda create --name msnag python=3.8
conda activate msnag

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

conda install pyg -c pyg
pip install torchsnooper
conda install -c conda-forge hyperopt
conda install -y -c conda-forge rdkit
conda install -c dglteam dgl-cuda11.3
conda install psutil
pip install dgllife
pip install deepchem

Architecture Search

Following are the datasets for MoleculeNet are used for molecule property prediction:

  • BACE
  • BBBP
  • HIV
  • MUV
  • SIDER
  • Tox21
  • ToxCast

To search a 3-layer GNN using one of the dataset above based on the designed search space, please run:

python -m rlctr.main  --dataset <dataset name>   --layers_of_child_model 3  

For now this does not work correctly.

NOTE: implementation not complete

Following are the TODOs that needs to be done such that they are able to run the experiments described in Chapter 4.

  • Load dataset from DGL-lifesci, as it allows use to pre-train node/edge features easily
    • Convert it to a Pytorch Data Class
  • Implement Graph Transform Netowrk
    • Call it in generate_layer()
    • add it to search space
  • Add in extract RNN token "readout", as this file performs node classification instead of graph classification
    • Add in options for the 'readout' token
  • For the generated GNN, modify it such that it uses the edge_weight and edge_attr features when training.
  • Add in different args for the argparser to make it eaiser to run different experiments

About

Source code for CIKM-CSSA 2020 paper SNAG "Simplified Neural Architecture search for Graph Neural Networks".

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%