class_docstr: InceptionV3 model for video action recognition
  Christian Szegedy, etal, Rethinking the Inception Architecture for Computer Vision, CVPR 2016
  https://arxiv.org/abs/1512.00567
  Limin Wang, etal, Towards Good Practices for Very Deep Two-Stream ConvNets, arXiv 2015
  https://arxiv.org/abs/1507.02159
  Limin Wang, etal, Temporal Segment Networks: Towards Good Practices for Deep Action Recognition, ECCV 2016
  https://arxiv.org/abs/1608.00859
  
  Parameters
  ----------
  nclass : int
      Number of classes in the training dataset.
  pretrained_base : bool or str, optional, default is True.
      Load pretrained base network, the extra layers are randomized. Note that
      if pretrained is `True`, this has no effect.
  partial_bn : bool, default False.
      Freeze all batch normalization layers during training except the first layer.
  dropout_ratio : float, default is 0.5.
      The dropout rate of a dropout layer.
      The larger the value, the more strength to prevent overfitting.
  init_std : float, default is 0.001.
      Standard deviation value when initialize the dense layers.
  num_segments : int, default is 1.
      Number of segments used to evenly divide a video.
  num_crop : int, default is 1.
      Number of crops used during evaluation, choices are 1, 3 or 10.
  
  Input: a single video frame or N images from N segments when num_segments > 1
  Output: a single predicted action label
class_docstr_tok: ["InceptionV3","model","for","video","action","recognition","Christian","Szegedy",",","etal",",","Rethinking","the","Inception","Architecture","for","Computer","Vision",",","CVPR","2016","https",":","\/\/arxiv.org\/abs\/1512.00567","Limin","Wang",",","etal",",","Towards","Good","Practices","for","Very","Deep","Two-Stream","ConvNets",",","arXiv","2015","https",":","\/\/arxiv.org\/abs\/1507.02159","Limin","Wang",",","etal",",","Temporal","Segment","Networks",":","Towards","Good","Practices","for","Deep","Action","Recognition",",","ECCV","2016","https",":","\/\/arxiv.org\/abs\/1608.00859","Parameters","--","--","--","--","--","nclass",":","int","Number","of","classes","in","the","training","dataset",".","pretrained_base",":","bool","or","str",",","optional",",","default","is","True",".","Load","pretrained","base","network",",","the","extra","layers","are","randomized",".","Note","that","if","pretrained","is","`","True","`",",","this","has","no","effect",".","partial_bn",":","bool",",","default","False",".","Freeze","all","batch","normalization","layers","during","training","except","the","first","layer",".","dropout_ratio",":","float",",","default","is","0.5",".","The","dropout","rate","of","a","dropout","layer",".","The","larger","the","value",",","the","more","strength","to","prevent","overfitting",".","init_std",":","float",",","default","is","0.001",".","Standard","deviation","value","when","initialize","the","dense","layers",".","num_segments",":","int",",","default","is","1",".","Number","of","segments","used","to","evenly","divide","a","video",".","num_crop",":","int",",","default","is","1",".","Number","of","crops","used","during","evaluation",",","choices","are","1",",","3","or","10",".","Input",":","a","single","video","frame","or","N","images","from","N","segments","when","num_segments",">","1","Output",":","a","single","predicted","action","label"]
code: def __init__(
      self,
      nclass,
      pretrained_base=True,
      partial_bn=True,
      dropout_ratio=0.5,
      init_std=0.001,
      num_segments=1,
      num_crop=1,
      **kwargs,
  ):
      super(ActionRecInceptionV3, self).__init__()
      self.dropout_ratio = dropout_ratio
      self.init_std = init_std
      self.num_segments = num_segments
      self.num_crop = num_crop
      self.feat_dim = 2048
  
      pretrained_model = inception_v3(
          pretrained=pretrained_base, partial_bn=partial_bn, **kwargs
      )
      self.features = pretrained_model.features
  
      def update_dropout_ratio(block):
          if isinstance(block, nn.basic_layers.Dropout):
              block._rate = self.dropout_ratio
  
      self.apply(update_dropout_ratio)
      self.output = nn.Dense(
          units=nclass,
          in_units=self.feat_dim,
          weight_initializer=init.Normal(sigma=self.init_std),
      )
      self.output.initialize()
  
file_path: gluon-cv/gluoncv/model_zoo/action_recognition/actionrec_inceptionv3.py
imports: import mxnet
  from mxnet import init
  from mxnet.gluon import nn
  from mxnet.gluon.nn import HybridBlock
  from ..inception import inception_v3
label_desc: Use image node_id 1 to create a new ActionRecInceptionV3 object from inherited base classes: HybridBlock with example: obj = ActionRecInceptionV3(nclass, pretrained_base, partial_bn, dropout_ratio, init_std, num_segments, num_crop)