code: def conv_bn_layer(
      self,
      input,
      num_filters,
      filter_size,
      stride=1,
      groups=1,
      act=None,
      name=None,
  ):
      conv = fluid.layers.conv2d(
          input=input,
          num_filters=num_filters,
          filter_size=filter_size,
          stride=stride,
          padding=(filter_size - 1) // 2,
          groups=groups,
          act=None,
          param_attr=ParamAttr(name=name + "_weights"),
          bias_attr=False,
          name=name + ".conv2d.output.1",
      )
  
      if name == "conv1":
          bn_name = "bn_" + name
      else:
          bn_name = "bn" + name[3:]
      return fluid.layers.batch_norm(
          input=conv,
          act=act,
          name=bn_name + ".output.1",
          param_attr=ParamAttr(name=bn_name + "_scale"),
          bias_attr=ParamAttr(bn_name + "_offset"),
          moving_mean_name=bn_name + "_mean",
          moving_variance_name=bn_name + "_variance",
          # use_global_stats=True,#add goodman
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from builtins import chr
  from builtins import str
  from builtins import range
  from builtins import object
  import math
  import paddle
  import paddle.fluid
  from paddle.fluid.param_attr import ParamAttr
label_desc: Use image node_id 3 for calling the ResNet obj's underlying member method code with example usage: obj.conv_bn_layer(input, num_filters, filter_size, stride, groups, act, name) and returns: fluid