code: def __init__(
      self,
      in_channels,
      out_channels,
      kernel_size,
      stride,
      padding,
      groups=1,
      if_act=True,
      act=None,
      name=None,
  ):
      super(ConvBNLayer, self).__init__()
      self.if_act = if_act
      self.act = act
      self.conv = nn.Conv2D(
          in_channels=in_channels,
          out_channels=out_channels,
          kernel_size=kernel_size,
          stride=stride,
          padding=padding,
          groups=groups,
          weight_attr=ParamAttr(name=name + "_weights"),
          bias_attr=False,
      )
  
      self.bn = nn.BatchNorm(
          num_channels=out_channels,
          act=act,
          param_attr=ParamAttr(name="bn_" + name + "_scale"),
          bias_attr=ParamAttr(name="bn_" + name + "_offset"),
          moving_mean_name="bn_" + name + "_mean",
          moving_variance_name="bn_" + name + "_variance",
      )
  
file_path: PaddleOCR/ppocr/modeling/heads/det_east_head.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import paddle
  from paddle import nn
  import paddle.nn.functional
  from paddle import ParamAttr
label_desc: Use image node_id 1 to create a new ConvBNLayer object from inherited base classes: nn with example: obj = ConvBNLayer(in_channels, out_channels, kernel_size, stride, padding, groups, if_act, act, name)