code: def __init__(
      self,
      num_channels,
      num_filters,
      filter_size,
      stride=1,
      groups=1,
      act=None,
      lr_mult=1.0,
      data_format="NCHW",
      bn_weight_decay=True,
  ):
      super().__init__()
      self.act = act
      self.avg_pool = AvgPool2D(
          kernel_size=2, stride=2, padding=0, ceil_mode=True
      )
      self.conv = Conv2D(
          in_channels=num_channels,
          out_channels=num_filters,
          kernel_size=filter_size,
          stride=stride,
          padding=(filter_size - 1) // 2,
          groups=groups,
          weight_attr=ParamAttr(
              learning_rate=lr_mult, initializer=KaimingNormal()
          ),
          bias_attr=False,
          data_format=data_format,
      )
      self.bn = BatchNorm(
          num_filters,
          param_attr=ParamAttr(
              learning_rate=lr_mult,
              regularizer=None
              if bn_weight_decay
              else paddle.regularizer.L2Decay(0.0),
              initializer=Constant(1.0),
          ),
          bias_attr=ParamAttr(
              learning_rate=lr_mult,
              regularizer=None
              if bn_weight_decay
              else paddle.regularizer.L2Decay(0.0),
              initializer=Constant(0.0),
          ),
          data_layout=data_format,
      )
      self.relu = nn.ReLU()
  
imports: import math
  import paddle
  from paddle import ParamAttr
  import paddle.nn
  from paddle.nn import Conv2D, BatchNorm, Linear
  from paddle.nn import AdaptiveAvgPool2D, MaxPool2D, AvgPool2D
  from paddle.nn.initializer import Uniform, Constant, KaimingNormal
label_desc: Use image node_id 1 to create a new ConvBNLayer object from inherited base classes: nn with example: obj = ConvBNLayer(num_channels, num_filters, filter_size, stride, groups, act, lr_mult, data_format, bn_weight_decay)