Home

Awesome

Compact Generalized Non-local Network

By Kaiyu Yue, Ming Sun, Yuchen Yuan, Feng Zhou, Errui Ding and Fuxin Xu

Introduction

This is a PyTorch re-implementation for the paper Compact Generalized Non-local Network. It brings the CGNL models trained on the CUB-200, ImageNet and COCO based on maskrcnn-benchmark from FAIR.

introfig

Update

Citation

If you think this code is useful in your research or wish to refer to the baseline results published in our paper, please use the following BibTeX entry.

@article{CGNLNetwork2018,
    author={Kaiyu Yue and Ming Sun and Yuchen Yuan and Feng Zhou and Errui Ding and Fuxin Xu},
    title={Compact Generalized Non-local Network},
    journal={NIPS},
    year={2018}
}

Requirements

Environment

The code is developed and tested under 8 Tesla P40 / V100-SXM2-16GB GPUS cards on CentOS with installed CUDA-9.2/8.0 and cuDNN-7.1.

Baselines and Main Results on CUB-200 Dataset

File IDModelBest Top-1 (%)Top-5 (%)Google DriveBaidu Pan
1832260500R-50 Base86.4597.00linklink
1832260501R-50 w/ 1 NL Block86.6996.95linklink
1832260502R-50 w/ 1 CGNL Block87.0696.91linklink
1832261010R-101 Base86.7696.91linklink
1832261011R-101 w/ 1 NL Block87.0497.01linklink
1832261012R-101 w/ 1 CGNL Block87.2897.20linklink

Notes:

File IDModelBest Top-1 (%)Top-5 (%)Google DriveBaidu Pan
1832260503xR-50 w/ 1 CGNLx Block86.5696.63linklink
1832261013xR-101 w/ 1 CGNLx Block87.1897.03linklink

Notes:

Experiments on ImageNet Dataset

File IDModelBest Top-1 (%)Top-5 (%)Google DriveBaidu Pan
torchvisionR-50 Base76.1592.87--
1832261502R-50 w/ 1 CGNL Block77.6993.63linklink
1832261503R-50 w/ 1 CGNLx Block77.3293.40linklink
torchvisionR-152 Base78.3194.06--
1832261522R-152 w/ 1 CGNL Block79.5394.52linklink
1832261523R-152 w/ 1 CGNLx Block79.3794.47linklink

Notes:

Experiments on COCO based on Mask R-CNN in PyTorch 1.0

backbonetypelr schedim / gputrain mem(GB)train time (s/iter)total train time(hr)inference time(s/im)box APmask APmodel idGoogle DriveBaidu Pan
R-50-C4Mask1x15.6410.543427.30.18329 + 0.01135.631.56358801--
R-50-C4 w/ 1 CGNL BlockMask1x15.8680.578528.50.20326 + 0.00836.332.1-linklink
R-50-C4 w/ 1 CGNLx BlockMask<details><summary>s1x</summary>_C.SOLVER.WARMUP_ITERS = 20000<br/>STEPS: (140000, 180000)<br/>MAX_ITER: 200000</details>15.9770.585532.30.18571 + 0.01036.231.9-linklink

Notes:

Getting Start

Prepare Dataset

Perform Validating

$ python train_val.py --arch '50' --dataset 'cub' --nl-type 'cgnl' --nl-num 1 --checkpoints ${FOLDER_DIR} --valid

Perform Training Baselines

$ python train_val.py --arch '50' --dataset 'cub' --nl-num 0

Perform Training NL and CGNL Networks

$ python train_val.py --arch '50' --dataset 'cub' --nl-type 'cgnl' --nl-num 1 --warmup

Reference

License

This code is released under the MIT License. See LICENSE for additional details.