Chainer implementation of between-class learning for Image classification https://arxiv.org/abs/1711.10284
Clone or download
Latest commit 0598bfe Dec 13, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
models first commit Dec 12, 2017
.gitignore first commit Dec 12, 2017
README.md Update README.md Dec 13, 2017
dataset.py first commit Dec 12, 2017
main.py Update main.py Dec 12, 2017
opts.py first commit Dec 12, 2017
train.py first commit Dec 12, 2017
utils.py first commit Dec 12, 2017

README.md

BC learning for images

Implementation of Between-class Learning for Image Classification by Yuji Tokozume, Yoshitaka Ushiku, and Tatsuya Harada.

Our preliminary experimental results on CIFAR-10 and ImageNet-1K were already presented in ILSVRC2017 on July 26, 2017.

Between-class (BC) learning:

Contents

  • BC learning for images
    • BC: mix two images simply using internal divisions.
    • BC+: mix two images treating them as waveforms.
  • Training of 11-layer CNN on CIFAR datasets

Setup

  • Install Chainer v1.24 on a machine with CUDA GPU.
  • Prepare CIFAR datasets.

Training

  • Template:

      python main.py --dataset [cifar10 or cifar100] --netType convnet --data path/to/dataset/directory/ (--BC) (--plus)
    
  • Recipes:

    • Standard learning on CIFAR-10 (around 6.1% error):

        python main.py --dataset cifar10 --netType convnet --data path/to/dataset/directory/
      
    • BC learning on CIFAR-10 (around 5.4% error):

        python main.py --dataset cifar10 --netType convnet --data path/to/dataset/directory/ --BC
      
    • BC+ learning on CIFAR-10 (around 5.2% error):

        python main.py --dataset cifar10 --netType convnet --data path/to/dataset/directory/ --BC --plus
      
  • Notes:

    • It uses the same data augmentation scheme as fb.resnet.torch.
    • By default, it runs training 10 times. You can specify the number of trials by using --nTrials command.
    • Please check opts.py for other command line arguments.

Results

Error rate (average of 10 trials)

Learning CIFAR-10 CIFAR-100
Standard 6.07 26.68
BC (ours) 5.40 24.28
BC+ (ours) 5.22 23.68
  • Other results (please see paper):
    • The performance of Shake-Shake Regularization [1] on CIFAR-10 was improved from 2.86% to 2.26%.
    • The performance of ResNeXt [2] on ImageNet-1K was improved from 20.4% to 19.4% (single-crop top-1 validation error).

Reference

[1] X. Gastaldi. Shake-shake regularization. In ICLR Workshop, 2017.

[2] S. Xie, R. Girshick, P. Dollar, Z. Tu, and K. He. Aggregated residual transformations for deep neural networks. In CVPR, 2017.