code: def conv_act_layer(
      from_layer,
      name,
      num_filter,
      kernel=(1, 1),
      pad=(0, 0),
      stride=(1, 1),
      act_type="relu",
      bias_wd_mult=0.0,
      separable=False,
      filter_in=-1,
  ):
      separable = False
      if separable:
          assert kernel[0] == 3
      if not separable:
          weight = mx.symbol.Variable(
              name="{}_weight".format(name),
              init=mx.init.Normal(0.01),
              attr={"__lr_mult__": "1.0"},
          )
          bias = mx.symbol.Variable(
              name="{}_bias".format(name),
              init=mx.init.Constant(0.0),
              attr={
                  "__lr_mult__": "2.0",
                  "__wd_mult__": str(bias_wd_mult),
              },
          )
          conv = mx.symbol.Convolution(
              data=from_layer,
              kernel=kernel,
              pad=pad,
              stride=stride,
              num_filter=num_filter,
              name="{}".format(name),
              weight=weight,
              bias=bias,
          )
          conv = mx.sym.BatchNorm(
              data=conv,
              fix_gamma=False,
              eps=2e-5,
              momentum=0.9,
              name=name + "_bn",
          )
      else:
          if filter_in < 0:
              filter_in = num_filter
          conv = mx.symbol.Convolution(
              data=from_layer,
              kernel=kernel,
              pad=pad,
              stride=stride,
              num_filter=filter_in,
              num_group=filter_in,
              name="{}_sep".format(name),
          )
          conv = mx.sym.BatchNorm(
              data=conv,
              fix_gamma=False,
              eps=2e-5,
              momentum=0.9,
              name=name + "_sep_bn",
          )
          conv = mx.symbol.Activation(
              data=conv,
              act_type="relu",
              name="{}_sep_bn_relu".format(name),
          )
          conv = mx.symbol.Convolution(
              data=conv,
              kernel=(1, 1),
              pad=(0, 0),
              stride=(1, 1),
              num_filter=num_filter,
              name="{}".format(name),
          )
          conv = mx.sym.BatchNorm(
              data=conv,
              fix_gamma=False,
              eps=2e-5,
              momentum=0.9,
              name=name + "_bn",
          )
      if len(act_type) > 0:
          relu = mx.symbol.Activation(
              data=conv,
              act_type=act_type,
              name="{}_{}".format(name, act_type),
          )
      else:
          relu = conv
      return relu
  
file_path: insightface/detection/retinaface/rcnn/symbol/symbol_resnet.py
imports: import mxnet
  import mxnet.ndarray
  import mxnet.gluon
  import mxnet.gluon.nn
  import mxnet.autograd
  import numpy
  from rcnn.config import config
  from rcnn.PY_OP import rpn_fpn_ohem3
  from rcnn.symbol.symbol_common import get_sym_train
label_desc: Use image node_id 3 for calling a global function with example usage: conv_act_layer(from_layer, name, num_filter, kernel, pad, stride, act_type, bias_wd_mult, separable, filter_in) and returns: relu