code: def __init__(
      self,
      in_channels,
      out_channels,
      stride,
      shortcut=True,
      if_first=False,
  ):
      super(BasicBlock, self).__init__()
      self.stride = stride
      self.conv0 = ConvBNLayer(
          in_channels=in_channels,
          out_channels=out_channels,
          kernel_size=3,
          stride=stride,
          act="relu",
      )
      self.conv1 = ConvBNLayer(
          in_channels=out_channels,
          out_channels=out_channels,
          kernel_size=3,
          act=None,
      )
  
      if not shortcut:
          self.short = ConvBNLayer(
              in_channels=in_channels,
              out_channels=out_channels,
              kernel_size=1,
              stride=1,
              is_vd_mode=False if if_first else True,
          )
  
      self.shortcut = shortcut
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import paddle
  from paddle import ParamAttr
  import paddle.nn
  import paddle.nn.functional
  from paddle.vision.ops import DeformConv2D
  from paddle.regularizer import L2Decay
  from paddle.nn.initializer import Normal, Constant, XavierUniform
label_desc: Use image node_id 1 to create a new BasicBlock object from inherited base classes: nn with example: obj = BasicBlock(in_channels, out_channels, stride, shortcut, if_first)