code: def residual_unit_v3_x(
      data, num_filter, stride, dim_match, name, bottle_neck, **kwargs
  ):
      """Return ResNeXt Unit symbol for building ResNeXt
      Parameters
      ----------
      data : str
          Input data
      num_filter : int
          Number of output channels
      bnf : int
          Bottle neck channels factor with regard to num_filter
      stride : tuple
          Stride used in convolution
      dim_match : Boolean
          True means channel number between input and output is the same, otherwise means differ
      name : str
          Base name of the operators
      workspace : int
          Workspace used in convolution operator
      """
      assert bottle_neck
      use_se = kwargs.get("version_se", 1)
      bn_mom = kwargs.get("bn_mom", 0.9)
      workspace = kwargs.get("workspace", 256)
      memonger = kwargs.get("memonger", False)
      act_type = kwargs.get("version_act", "prelu")
      num_group = 32
      # print('in unit3')
      bn1 = mx.sym.BatchNorm(
          data=data,
          fix_gamma=False,
          eps=2e-5,
          momentum=bn_mom,
          name=name + "_bn1",
      )
      conv1 = Conv(
          data=bn1,
          num_group=num_group,
          num_filter=int(num_filter * 0.5),
          kernel=(1, 1),
          stride=(1, 1),
          pad=(0, 0),
          no_bias=True,
          workspace=workspace,
          name=name + "_conv1",
      )
      bn2 = mx.sym.BatchNorm(
          data=conv1,
          fix_gamma=False,
          eps=2e-5,
          momentum=bn_mom,
          name=name + "_bn2",
      )
      act1 = Act(data=bn2, act_type=act_type, name=name + "_relu1")
      conv2 = Conv(
          data=act1,
          num_group=num_group,
          num_filter=int(num_filter * 0.5),
          kernel=(3, 3),
          stride=(1, 1),
          pad=(1, 1),
          no_bias=True,
          workspace=workspace,
          name=name + "_conv2",
      )
      bn3 = mx.sym.BatchNorm(
          data=conv2,
          fix_gamma=False,
          eps=2e-5,
          momentum=bn_mom,
          name=name + "_bn3",
      )
      act2 = Act(data=bn3, act_type=act_type, name=name + "_relu2")
      conv3 = Conv(
          data=act2,
          num_filter=num_filter,
          kernel=(1, 1),
          stride=stride,
          pad=(0, 0),
          no_bias=True,
          workspace=workspace,
          name=name + "_conv3",
      )
      bn4 = mx.sym.BatchNorm(
          data=conv3,
          fix_gamma=False,
          eps=2e-5,
          momentum=bn_mom,
          name=name + "_bn4",
      )
  
      if use_se:
          # se begin
          body = mx.sym.Pooling(
              data=bn4,
              global_pool=True,
              kernel=(7, 7),
              pool_type="avg",
              name=name + "_se_pool1",
          )
          body = Conv(
              data=body,
              num_filter=num_filter // 16,
              kernel=(1, 1),
              stride=(1, 1),
              pad=(0, 0),
              name=name + "_se_conv1",
              workspace=workspace,
          )
          body = Act(
              data=body, act_type=act_type, name=name + "_se_relu1"
          )
          body = Conv(
              data=body,
              num_filter=num_filter,
              kernel=(1, 1),
              stride=(1, 1),
              pad=(0, 0),
              name=name + "_se_conv2",
              workspace=workspace,
          )
          body = mx.symbol.Activation(
              data=body, act_type="sigmoid", name=name + "_se_sigmoid"
          )
          bn4 = mx.symbol.broadcast_mul(bn4, body)
          # se end
  
      if dim_match:
          shortcut = data
      else:
          conv1sc = Conv(
              data=data,
              num_filter=num_filter,
              kernel=(1, 1),
              stride=stride,
              no_bias=True,
              workspace=workspace,
              name=name + "_conv1sc",
          )
          shortcut = mx.sym.BatchNorm(
              data=conv1sc,
              fix_gamma=False,
              eps=2e-5,
              momentum=bn_mom,
              name=name + "_sc",
          )
      if memonger:
          shortcut._set_attr(mirror_stage="True")
      return bn4 + shortcut
  
file_path: insightface/recognition/partial_fc/mxnet/symbol/resnet.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import sys
  import os
  import mxnet
  import numpy
  from symbol import symbol_utils
  from default import config
label_desc: Use image node_id 7 for calling a global function with example usage: residual_unit_v3_x(data, num_filter, stride, dim_match, name, bottle_neck) and returns: unknown