code: def __init__(
      self,
      num_channels,
      filter_size,
      num_filters,
      stride,
      padding,
      channels=None,
      num_groups=1,
      act="hard_swish",
  ):
      super(ConvBNLayer, self).__init__()
  
      self._conv = Conv2D(
          in_channels=num_channels,
          out_channels=num_filters,
          kernel_size=filter_size,
          stride=stride,
          padding=padding,
          groups=num_groups,
          weight_attr=ParamAttr(initializer=KaimingNormal()),
          bias_attr=False,
      )
  
      self._batch_norm = BatchNorm(
          num_filters,
          act=act,
          param_attr=ParamAttr(regularizer=L2Decay(0.0)),
          bias_attr=ParamAttr(regularizer=L2Decay(0.0)),
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import numpy
  import paddle
  from paddle import ParamAttr, reshape, transpose
  import paddle.nn
  import paddle.nn.functional
  from paddle.nn import Conv2D, BatchNorm, Linear, Dropout
  from paddle.nn import AdaptiveAvgPool2D, MaxPool2D, AvgPool2D
  from paddle.nn.initializer import KaimingNormal
  from paddle.regularizer import L2Decay
  from paddle.nn.functional import hardswish, hardsigmoid
label_desc: Use image node_id 1 to create a new ConvBNLayer object from inherited base classes: nn with example: obj = ConvBNLayer(num_channels, filter_size, num_filters, stride, padding, channels, num_groups, act)