/SDPoint

Stochastic Downsampling for Cost-Adjustable Inference and Improved Regularization in Convolutional Networks

Primary LanguagePythonMIT LicenseMIT

Stochastic Downsampling for Cost-Adjustable Inference and Improved Regularization in Convolutional Networks (SDPoint)

This repository contains the code for the SDPoint method proposed in

Stochastic Downsampling for Cost-Adjustable Inference and Improved Regularization in Convolutional Networks
CVPR 2018

Citation

If you find this code useful for your research, please cite

@article{kuen2018stochastic,
  title={{Stochastic Downsampling for Cost-Adjustable Inference and Improved Regularization in Convolutional Networks}},
  author={Kuen, Jason and Kong, Xiangfei and Zhe, Lin and Wang, Gang and Yin, Jianxiong and See, Simon and Tan, Yap-Peng},
  booktitle={IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  year={2018}
}

Dependencies

Dataset

Set up ImageNet dataset according to https://github.com/pytorch/examples/tree/master/imagenet.

Supported Architectures

  • ResNets - resnet18, resnet34, resnet50, resnet101, resnet152
  • Pre-activation ResNets (PreResNets) - preresnet18, preresnet34, preresnet50, preresnet101, preresnet152, preresnet200
  • ResNeXts - resnext50, resnext101, resnext152

Training

python main.py -a resnext101 [imagenet-folder with train and val folders]

Evaluation

The different SDPoint instances are evaluated one by one. For each instance, the model accumulates Batch Norm statistics from the training set. The validation results (top-1 and top-5 accuracies) and model FLOPs are saved to the file with the filename specified by --val-results-path [default: val_results.txt].

python main.py -a resnext101 --resume checkpoint.pth.tar --evaluate [imagenet-folder with train and val folders]