code: def conv_resnet(
      data,
      num_filter,
      stride,
      dim_match,
      name,
      binarize,
      dcn,
      dilate,
      **kwargs,
  ):
      bit = 1
      # print('in unit2')
      # the same as https://github.com/facebook/fb.resnet.torch#notes, a bit difference with origin paper
      bn1 = mx.sym.BatchNorm(
          data=data,
          fix_gamma=False,
          eps=2e-5,
          momentum=bn_mom,
          name=name + "_bn1",
      )
      if not binarize:
          act1 = Act(data=bn1, act_type="relu", name=name + "_relu1")
          conv1 = Conv(
              data=act1,
              num_filter=int(num_filter * 0.5),
              kernel=(1, 1),
              stride=(1, 1),
              pad=(0, 0),
              no_bias=True,
              workspace=workspace,
              name=name + "_conv1",
          )
      else:
          act1 = mx.sym.QActivation(
              data=bn1,
              act_bit=ACT_BIT,
              name=name + "_relu1",
              backward_only=True,
          )
          conv1 = mx.sym.QConvolution(
              data=act1,
              num_filter=int(num_filter * 0.5),
              kernel=(1, 1),
              stride=(1, 1),
              pad=(0, 0),
              no_bias=True,
              workspace=workspace,
              name=name + "_conv1",
              act_bit=ACT_BIT,
              weight_bit=bit,
          )
      bn2 = mx.sym.BatchNorm(
          data=conv1,
          fix_gamma=False,
          eps=2e-5,
          momentum=bn_mom,
          name=name + "_bn2",
      )
      if not binarize:
          act2 = Act(data=bn2, act_type="relu", name=name + "_relu2")
          conv2 = Conv(
              data=act2,
              num_filter=int(num_filter * 0.5),
              kernel=(3, 3),
              stride=(1, 1),
              pad=(1, 1),
              no_bias=True,
              workspace=workspace,
              name=name + "_conv2",
          )
      else:
          act2 = mx.sym.QActivation(
              data=bn2,
              act_bit=ACT_BIT,
              name=name + "_relu2",
              backward_only=True,
          )
          conv2 = mx.sym.QConvolution(
              data=act2,
              num_filter=int(num_filter * 0.5),
              kernel=(3, 3),
              stride=(1, 1),
              pad=(1, 1),
              no_bias=True,
              workspace=workspace,
              name=name + "_conv2",
              act_bit=ACT_BIT,
              weight_bit=bit,
          )
      bn3 = mx.sym.BatchNorm(
          data=conv2,
          fix_gamma=False,
          eps=2e-5,
          momentum=bn_mom,
          name=name + "_bn3",
      )
      if not binarize:
          act3 = Act(data=bn3, act_type="relu", name=name + "_relu3")
          conv3 = Conv(
              data=act3,
              num_filter=num_filter,
              kernel=(1, 1),
              stride=(1, 1),
              pad=(0, 0),
              no_bias=True,
              workspace=workspace,
              name=name + "_conv3",
          )
      else:
          act3 = mx.sym.QActivation(
              data=bn3,
              act_bit=ACT_BIT,
              name=name + "_relu3",
              backward_only=True,
          )
          conv3 = mx.sym.QConvolution(
              data=act3,
              num_filter=num_filter,
              kernel=(1, 1),
              stride=(1, 1),
              pad=(0, 0),
              no_bias=True,
              workspace=workspace,
              name=name + "_conv3",
              act_bit=ACT_BIT,
              weight_bit=bit,
          )
      # if binarize:
      #  conv3 = mx.sym.BatchNorm(data=conv3, fix_gamma=False, eps=2e-5, momentum=bn_mom, name=name + '_bn4')
      if dim_match:
          shortcut = data
      else:
          if not binarize:
              shortcut = Conv(
                  data=act1,
                  num_filter=num_filter,
                  kernel=(1, 1),
                  stride=stride,
                  no_bias=True,
                  workspace=workspace,
                  name=name + "_sc",
              )
          else:
              shortcut = mx.sym.QConvolution(
                  data=act1,
                  num_filter=num_filter,
                  kernel=(1, 1),
                  stride=stride,
                  pad=(0, 0),
                  no_bias=True,
                  workspace=workspace,
                  name=name + "_sc",
                  act_bit=ACT_BIT,
                  weight_bit=bit,
              )
      if memonger:
          shortcut._set_attr(mirror_stage="True")
      return conv3 + shortcut
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import mxnet
  import numpy
  from config import config
label_desc: Use image node_id 5 for calling a global function with example usage: conv_resnet(data, num_filter, stride, dim_match, name, binarize, dcn, dilate) and returns: unknown