资源算法shuffleNet-cifar10

shuffleNet-cifar10

2020-01-16 | |  41 |   0 |   0

shuffleNet-cifar10

a pytorch implement of shuffleNet on cifar-10

channel shuffle

  • channel shuffle is a operation proposed in shuffleNet to adress the information isolation between channels while using successive group convolution.

  • It can be done using only several lines code

    # channel shufflen, c, w, h = x.shape
    x = x.view(n, self.g, self.n, w, h)
    x = x.transpose_(1, 2).contiguous()
    x = x.view(n, c, w, h)
  • there is a demo picture to show what happened when channel shuffle

    demo

training on cifar10

  • To make it suit cifar10's image size, I have disabled some downsample operation (i.e. maxpooling or stride = 2) and just keep the last two

  • because of the low efficiency of group convolution, it takes relatively long time to train, more details can be seen below

    scale factorgroupsparams/Mflops/Mtraining timeaccuracy
    1.080.9131161.7011.4h92.29%
    0.580.250743.436.5h91.48%
    0.530.242742.974.0h92.60%
    0.510.248744.633.6h91.44%
    • here the accuracy means the max accuracy on validation set

    • training time is measured on a titan x (pascal) GPU

    • the results is comparable with resnet 20 which have the similar number of parameters:

      resnet 20 params: 0.27M accuracy: 91.25%

  • more logs and the best weights can be get in folder bak

dependency

  • pytorch 0.4.0

  • python 3.x




上一篇:mxnet-shufflenet

下一篇: pytorch-trpo

用户评价
全部评价

热门资源

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • inferno-boilerplate

    This is a very basic boilerplate example for pe...