class_docstr: GoogleNet model from
  `"Going Deeper with Convolutions"
  <https://arxiv.org/abs/1409.4842>`_ paper.
  `"Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift"
  <https://arxiv.org/abs/1502.03167>`_ paper.
  
  Parameters
  ----------
  classes : int, default 1000
      Number of classification classes.
  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`.
  partial_bn : bool, default False
      Freeze all batch normalization layers during training except the first layer.
class_docstr_tok: ["GoogleNet","model","from","`","``","Going","Deeper","with","Convolutions","''","<","https",":","\/\/arxiv.org\/abs\/1409.4842",">","`","_","paper",".","`","``","Batch","Normalization",":","Accelerating","Deep","Network","Training","by","Reducing","Internal","Covariate","Shift","''","<","https",":","\/\/arxiv.org\/abs\/1502.03167",">","`","_","paper",".","Parameters","--","--","--","--","--","classes",":","int",",","default","1000","Number","of","classification","classes",".","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","`",".","partial_bn",":","bool",",","default","False","Freeze","all","batch","normalization","layers","during","training","except","the","first","layer","."]
code: def __init__(
      self,
      classes=1000,
      norm_layer=BatchNorm,
      dropout_ratio=0.4,
      aux_logits=False,
      norm_kwargs=None,
      partial_bn=False,
      pretrained_base=True,
      ctx=None,
      **kwargs,
  ):
      super(GoogLeNet, self).__init__(**kwargs)
      self.dropout_ratio = dropout_ratio
      self.aux_logits = aux_logits
  
      with self.name_scope():
          self.conv1 = _make_basic_conv(
              in_channels=3,
              channels=64,
              kernel_size=7,
              strides=2,
              padding=3,
              norm_layer=norm_layer,
              norm_kwargs=norm_kwargs,
          )
          self.maxpool1 = nn.MaxPool2D(
              pool_size=3, strides=2, ceil_mode=True
          )
  
          if partial_bn:
              if norm_kwargs is not None:
                  norm_kwargs["use_global_stats"] = True
              else:
                  norm_kwargs = {}
                  norm_kwargs["use_global_stats"] = True
  
          self.conv2 = _make_basic_conv(
              in_channels=64,
              channels=64,
              kernel_size=1,
              norm_layer=norm_layer,
              norm_kwargs=norm_kwargs,
          )
          self.conv3 = _make_basic_conv(
              in_channels=64,
              channels=192,
              kernel_size=3,
              padding=1,
              norm_layer=norm_layer,
              norm_kwargs=norm_kwargs,
          )
          self.maxpool2 = nn.MaxPool2D(
              pool_size=3, strides=2, ceil_mode=True
          )
  
          self.inception3a = _make_Mixed_3a(
              192, 32, "Mixed_3a_", norm_layer, norm_kwargs
          )
          self.inception3b = _make_Mixed_3b(
              256, 64, "Mixed_3b_", norm_layer, norm_kwargs
          )
          self.maxpool3 = nn.MaxPool2D(
              pool_size=3, strides=2, ceil_mode=True
          )
  
          self.inception4a = _make_Mixed_4a(
              480, 64, "Mixed_4a_", norm_layer, norm_kwargs
          )
          self.inception4b = _make_Mixed_4b(
              512, 64, "Mixed_4b_", norm_layer, norm_kwargs
          )
          self.inception4c = _make_Mixed_4c(
              512, 64, "Mixed_4c_", norm_layer, norm_kwargs
          )
          self.inception4d = _make_Mixed_4d(
              512, 64, "Mixed_4d_", norm_layer, norm_kwargs
          )
          self.inception4e = _make_Mixed_4e(
              528, 128, "Mixed_4e_", norm_layer, norm_kwargs
          )
          self.maxpool4 = nn.MaxPool2D(pool_size=2, strides=2)
  
          self.inception5a = _make_Mixed_5a(
              832, 128, "Mixed_5a_", norm_layer, norm_kwargs
          )
          self.inception5b = _make_Mixed_5b(
              832, 128, "Mixed_5b_", norm_layer, norm_kwargs
          )
  
          if self.aux_logits:
              self.aux1 = _make_aux(
                  512, classes, norm_layer, norm_kwargs
              )
              self.aux2 = _make_aux(
                  528, classes, norm_layer, norm_kwargs
              )
  
          self.head = nn.HybridSequential(prefix="")
          self.avgpool = nn.AvgPool2D(pool_size=7)
          self.dropout = nn.Dropout(self.dropout_ratio)
          self.output = nn.Dense(units=classes, in_units=1024)
          self.head.add(self.avgpool)
          self.head.add(self.dropout)
          self.head.add(self.output)
  
imports: from mxnet.context import cpu
  from mxnet.gluon.block import HybridBlock
  from mxnet.gluon import nn
  from mxnet.gluon.nn import BatchNorm
  from mxnet.gluon.contrib.nn import HybridConcurrent
label_desc: Use image node_id 1 to create a new GoogLeNet object from inherited base classes: HybridBlock with example: obj = GoogLeNet(classes, norm_layer, dropout_ratio, aux_logits, norm_kwargs, partial_bn, pretrained_base, ctx)