code: def __init__(
      self,
      in_channels,
      out_channels,
      ks=1,
      stride=1,
      pad=0,
      dilation=1,
      groups=1,
      bn_weight_init=1,
      lr_mult=1.0,
  ):
      super().__init__()
      conv_weight_attr = paddle.ParamAttr(learning_rate=lr_mult)
      self.c = nn.Conv2D(
          in_channels=in_channels,
          out_channels=out_channels,
          kernel_size=ks,
          stride=stride,
          padding=pad,
          dilation=dilation,
          groups=groups,
          weight_attr=conv_weight_attr,
          bias_attr=False,
      )
      bn_weight_attr = paddle.ParamAttr(
          initializer=nn.initializer.Constant(bn_weight_init),
          learning_rate=lr_mult,
      )
      bn_bias_attr = paddle.ParamAttr(
          initializer=nn.initializer.Constant(0), learning_rate=lr_mult
      )
      self.bn = nn.BatchNorm2D(
          out_channels,
          weight_attr=bn_weight_attr,
          bias_attr=bn_bias_attr,
      )
  
imports: from functools import partial
  from collections import defaultdict
  import paddle
  import paddle.nn
  import paddle.nn.functional
  import paddleseg
  from paddleseg import utils
  from paddleseg.models import layers
  from paddleseg.cvlibs import manager
  from paddleseg.models.backbones.transformer_utils import Identity, DropPath
  from ppmatting.models.layers import MLFF
  from ppmatting.models.losses import MRSD, GradientLoss
label_desc: Use image node_id 1 to create a new Conv2DBN object from inherited base classes: nn with example: obj = Conv2DBN(in_channels, out_channels, ks, stride, pad, dilation, groups, bn_weight_init, lr_mult)