code: def __init__(
      self,
      in_channels,
      out_channels,
      is_batchnorm,
      num_conv=2,
      kernel_size=3,
      stride=1,
      padding=1,
  ):
      super(UnetConv2D, self).__init__()
      self.num_conv = num_conv
      for i in range(num_conv):
          conv = (
              nn.Sequential(
                  nn.Conv2D(
                      in_channels,
                      out_channels,
                      kernel_size,
                      stride,
                      padding,
                  ),
                  nn.BatchNorm(out_channels),
                  nn.ReLU(),
              )
              if is_batchnorm
              else nn.Sequential(
                  nn.Conv2D(
                      in_channels,
                      out_channels,
                      kernel_size,
                      stride,
                      padding,
                  ),
                  nn.ReLU(),
              )
          )
          setattr(self, "conv%d" % (i + 1), conv)
          in_channels = out_channels
      # initialise the blocks
      for children in self.children():
          children.weight_attr = paddle.framework.ParamAttr(
              initializer=paddle.nn.initializer.KaimingNormal
          )
          children.bias_attr = paddle.framework.ParamAttr(
              initializer=paddle.nn.initializer.KaimingNormal
          )
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.cvlibs import manager
  from paddleseg.models.layers.layer_libs import SyncBatchNorm
  from paddleseg.cvlibs.param_init import kaiming_normal_init
label_desc: Use image node_id 1 to create a new UnetConv2D object from inherited base classes: nn with example: obj = UnetConv2D(in_channels, out_channels, is_batchnorm, num_conv, kernel_size, stride, padding)