class_docstr: Model for architecture ShuffleNet, ShuffleNet-0.5x and ShufffleNet-2.0x.
  
  Args:
      Scaling Factor (str): To customize the network to a desired complexity,  we can simply apply a scale factor on the number of channnels. This can be chosen from '10', '5' and '20'.
  
  The following is a list of string that can be specified to ``use_up_to`` option in ``__call__`` method;
  
  * ``'classifier'`` (default): The output of the final affine layer for classification.
  * ``'pool'``: The output of the final global average pooling.
  * ``'lastconv'``: The input of the final global average pooling without ReLU activation.
  * ``'lastconv+relu'``: Network up to ``'lastconv'`` followed by ReLU activation.
  
  References:
      * `Zhang. et al., ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices.
        <https://arxiv.org/abs/1707.01083>`_
      * `Ma, Zhang. et al., ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design.
        <https://arxiv.org/abs/1807.11164>`_
class_docstr_tok: ["Model","for","architecture","ShuffleNet",",","ShuffleNet-0.5x","and","ShufffleNet-2.0x",".","Args",":","Scaling","Factor","(","str",")",":","To","customize","the","network","to","a","desired","complexity",",","we","can","simply","apply","a","scale","factor","on","the","number","of","channnels",".","This","can","be","chosen","from","'10","'",",","'","5","'","and","'20","'",".","The","following","is","a","list","of","string","that","can","be","specified","to","``","use_up_to","``","option","in","``","__call__","``","method",";","*","``","'classifier","'","``","(","default",")",":","The","output","of","the","final","affine","layer","for","classification",".","*","``","'pool","'","``",":","The","output","of","the","final","global","average","pooling",".","*","``","'lastconv","'","``",":","The","input","of","the","final","global","average","pooling","without","ReLU","activation",".","*","``","'lastconv+relu","'","``",":","Network","up","to","``","'lastconv","'","``","followed","by","ReLU","activation",".","References",":","*","`","Zhang",".","et","al.",",","ShuffleNet",":","An","Extremely","Efficient","Convolutional","Neural","Network","for","Mobile","Devices",".","<","https",":","\/\/arxiv.org\/abs\/1707.01083",">","`","_","*","`","Ma",",","Zhang",".","et","al.",",","ShuffleNet","V2",":","Practical","Guidelines","for","Efficient","CNN","Architecture","Design",".","<","https",":","\/\/arxiv.org\/abs\/1807.11164",">","`","_"]
code: def _input_shape(self):
      return (3, 224, 224)
  
file_path: nnabla/python/src/nnabla/models/imagenet/shufflenet.py
imports: from __future__ import absolute_import
  from nnabla.utils.nnp_graph import NnpNetworkPass
  from .base import ImageNetBase
label_desc: Use image node_id 2 for calling the ShuffleNet obj's underlying member method code with example usage: obj._input_shape() and returns: int,  int,  int