class_docstr: MobileNet model from the
  `"MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications"
  <https://arxiv.org/abs/1704.04861>`_ paper.
  
  Parameters
  ----------
  multiplier : float, default 1.0
      The width multiplier for controlling the model size. Only multipliers that are no
      less than 0.25 are supported. The actual number of channels is equal to the original
      channel size multiplied by this multiplier.
  classes : int, default 1000
      Number of classes for the output layer.
  norm_layer : object
      Normalization layer used (default: :class:`mxnet.gluon.nn.BatchNorm`)
      Can be :class:`mxnet.gluon.nn.BatchNorm` or :class:`mxnet.gluon.contrib.nn.SyncBatchNorm`.
  norm_kwargs : dict
      Additional `norm_layer` arguments, for example `num_devices=4`
      for :class:`mxnet.gluon.contrib.nn.SyncBatchNorm`.
class_docstr_tok: ["MobileNet","model","from","the","`","``","MobileNets",":","Efficient","Convolutional","Neural","Networks","for","Mobile","Vision","Applications","''","<","https",":","\/\/arxiv.org\/abs\/1704.04861",">","`","_","paper",".","Parameters","--","--","--","--","--","multiplier",":","float",",","default","1.0","The","width","multiplier","for","controlling","the","model","size",".","Only","multipliers","that","are","no","less","than","0.25","are","supported",".","The","actual","number","of","channels","is","equal","to","the","original","channel","size","multiplied","by","this","multiplier",".","classes",":","int",",","default","1000","Number","of","classes","for","the","output","layer",".","norm_layer",":","object","Normalization","layer","used","(","default",":",":","class",":","`","mxnet.gluon.nn.BatchNorm","`",")","Can","be",":","class",":","`","mxnet.gluon.nn.BatchNorm","`","or",":","class",":","`","mxnet.gluon.contrib.nn.SyncBatchNorm","`",".","norm_kwargs",":","dict","Additional","`","norm_layer","`","arguments",",","for","example","`","num_devices=4","`","for",":","class",":","`","mxnet.gluon.contrib.nn.SyncBatchNorm","`","."]
code: def __init__(
      self,
      multiplier=1.0,
      classes=1000,
      norm_layer=BatchNorm,
      norm_kwargs=None,
      **kwargs,
  ):
      super(MobileNet, self).__init__(**kwargs)
      with self.name_scope():
          self.features = nn.HybridSequential(prefix="")
          with self.features.name_scope():
              _add_conv(
                  self.features,
                  channels=int(32 * multiplier),
                  kernel=3,
                  pad=1,
                  stride=2,
                  norm_layer=norm_layer,
                  norm_kwargs=norm_kwargs,
              )
              dw_channels = [
                  int(x * multiplier)
                  for x in [32, 64]
                  + [128] * 2
                  + [256] * 2
                  + [512] * 6
                  + [1024]
              ]
              channels = [
                  int(x * multiplier)
                  for x in [64]
                  + [128] * 2
                  + [256] * 2
                  + [512] * 6
                  + [1024] * 2
              ]
              strides = [1, 2] * 3 + [1] * 5 + [2, 1]
              for dwc, c, s in zip(dw_channels, channels, strides):
                  _add_conv_dw(
                      self.features,
                      dw_channels=dwc,
                      channels=c,
                      stride=s,
                      norm_layer=norm_layer,
                      norm_kwargs=norm_kwargs,
                  )
              self.features.add(nn.GlobalAvgPool2D())
              self.features.add(nn.Flatten())
  
          self.output = nn.Dense(classes)
  
imports: from mxnet.gluon import nn
  from mxnet.gluon.nn import BatchNorm
  from mxnet.context import cpu
  from mxnet.gluon.block import HybridBlock
  from ..nn import ReLU6
label_desc: Use image node_id 1 to create a new MobileNet object from inherited base classes: HybridBlock with example: obj = MobileNet(multiplier, classes, norm_layer, norm_kwargs)