code: def __init__(
      self,
      inplanes,
      planes,
      stride=1,
      upsample=None,
      norm_layer=None,
      large_kernel=False,
  ):
      super().__init__()
      if norm_layer is None:
          norm_layer = nn.BatchNorm
      self.stride = stride
      conv = conv5x5 if large_kernel else conv3x3
      # Both self.conv1 and self.downsample layers downsample the input when stride != 1
      if self.stride > 1:
          self.conv1 = nn.utils.spectral_norm(
              nn.Conv2DTranspose(
                  inplanes,
                  inplanes,
                  kernel_size=4,
                  stride=2,
                  padding=1,
                  bias_attr=False,
              )
          )
      else:
          self.conv1 = nn.utils.spectral_norm(conv(inplanes, inplanes))
      self.bn1 = norm_layer(inplanes)
      self.activation = nn.LeakyReLU(0.2)
      self.conv2 = nn.utils.spectral_norm(conv(inplanes, planes))
      self.bn2 = norm_layer(planes)
      self.upsample = upsample
  
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.models import layers
  from paddleseg import utils
  from paddleseg.cvlibs import manager, param_init
  from ppmatting.models.layers import GuidedCxtAtten
label_desc: Use image node_id 1 to create a new BasicBlock object from inherited base classes: nn with example: obj = BasicBlock(inplanes, planes, stride, upsample, norm_layer, large_kernel)