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 __call__(
      self,
      input_var=None,
      use_from=None,
      use_up_to="classifier",
      training=False,
      force_global_pooling=False,
      check_global_pooling=True,
      returns_net=False,
      verbose=0,
  ):
      assert (
          use_from is None
      ), "This should not be set because it is for forward compatibility."
      input_var = self.get_input_var(input_var)
  
      callback = NnpNetworkPass(verbose)
      callback.remove_and_rewire("ImageAugmentationX")
      callback.set_variable("InputX", input_var)
      self.configure_global_average_pooling(
          callback,
          force_global_pooling,
          check_global_pooling,
          "AveragePooling",
      )
      callback.set_batch_normalization_batch_stat_all(training)
      self.use_up_to(use_up_to, callback)
      if not training:
          callback.fix_parameters()
      batch_size = input_var.shape[0]
      net = self.nnp.get_network(
          "Training", batch_size=batch_size, callback=callback
      )
      if returns_net:
          return net
      return list(net.outputs.values())[0]
  
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 3 for calling the ShuffleNet obj's underlying member method code with example usage: obj.__call__(input_var, use_from, use_up_to, training, force_global_pooling, check_global_pooling, returns_net, verbose) and returns: list, net