OneForward / ResMHGNN

Source code for the paper Residual Enhanced Multi-Hypergraph Neural Network (ICIP 2021).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ResMultiHGNN

This repository contains the source code for the paper Residual Enhanced Multi-Hypergraph Neural Network, accepted by ICIP 2021.

Citation

If you find this work useful in your research, please consider cite:

@inproceedings{icip21-ResMHGNN,
  title     = {Residual Enhanced Multi-Hypergraph Neural Network},
  author    = {Huang, Jing and Huang, Xiaolin and Yang, Jie},
  booktitle = {International Conference on Image Processing, {ICIP-21}},
  year      = {2021}
}

Getting Started

Prerequisites

Our code requires Python>=3.6.

We recommed using virtual environtment and install the newest versions of Pytorch.

You also need these additional packages:

  • scipy
  • numpy
  • path

Datasets

Please download the precomputed features of ModelNet40 and NTU2012 datasets from HGNN or just clicking the following links.

Extract above files and put them under any directory ($DATA_ROOT) you like.

3D Object Classification Task

We implement the HGNN, MultiHGNN, ResHGNN and ResMultiHGNN. You can change the $model and the layers $layer.

Full Training Lables

python train.py --dataroot=$DATA_ROOT --dataname=ModelNet40  --seed=2  --model-name=$model --nlayer=$layer; 

python train.py --dataroot=$DATA_ROOT --dataname=NTU2012     --seed=1  --model-name=$model --nlayer=$layer; 

Balanced Subset of Training Labels

python train.py --dataroot=$DATA_ROOT --dataname=ModelNet40  --model-name=$model --nlayer=$layer --balanced; 

python train.py --dataroot=$DATA_ROOT --dataname=NTU2012     --model-name=$model --nlayer=$layer --balanced; 

Stability Analysis

Change the split-ratio as you like.

python train.py --dataroot=$DATA_ROOT --dataname=ModelNet40   --model-name=$model --nlayer=$layer --split-ratio=4; 

python train.py --dataroot=$DATA_ROOT --dataname=NTU2012      --model-name=$model --nlayer=$layer --split-ratio=4; 

Usage

usage: ResMultiHGNN [-h] [--dataroot DATAROOT] [--dataname DATANAME]
                    [--model-name MODEL_NAME] [--nlayer NLAYER] [--nhid NHID]
                    [--dropout DROPOUT] [--epochs EPOCHS]
                    [--patience PATIENCE] [--gpu GPU] [--seed SEED]
                    [--nostdout] [--balanced] [--split-ratio SPLIT_RATIO]
                    [--out-dir OUT_DIR]

optional arguments:
  -h, --help            show this help message and exit
  --dataroot DATAROOT   the directary of your .mat data (default:
                        ~/data/HGNN)
  --dataname DATANAME   data name (ModelNet40/NTU2012) (default: NTU2012)
  --model-name MODEL_NAME
                        (HGNN, ResHGNN, MultiHGNN, ResMultiHGNN) (default:
                        HGNN)
  --nlayer NLAYER       number of hidden layers (default: 2)
  --nhid NHID           number of hidden features (default: 128)
  --dropout DROPOUT     dropout probability (default: 0.5)
  --epochs EPOCHS       number of epochs to train (default: 600)
  --patience PATIENCE   early stop after specific epochs (default: 200)
  --gpu GPU             gpu number to use (default: 0)
  --seed SEED           seed for randomness (default: 1)
  --nostdout            do not output logging info to terminal (default:
                        False)
  --balanced            only use the balanced subset of training labels
                        (default: False)
  --split-ratio SPLIT_RATIO
                        if set unzero, this is for Task: Stability Analysis,
                        new total/train ratio (default: 0)

License

Distributed under the MIT License. See LICENSE for more information.

About

Source code for the paper Residual Enhanced Multi-Hypergraph Neural Network (ICIP 2021).

License:MIT License


Languages

Language:Python 100.0%