code: def __init__(
      self,
      in_channels: int,
      out_channels: int,
      stride: int,
      shortcut: bool = True,
      if_first: bool = False,
      name: str = None,
  ):
      super(BasicBlock, self).__init__()
      self.stride = stride
      self.conv0 = L.ConvBNLayer(
          in_channels=in_channels,
          out_channels=out_channels,
          kernel_size=3,
          stride=stride,
          act="relu",
          name=name + "_branch2a",
      )
      self.conv1 = L.ConvBNLayer(
          in_channels=out_channels,
          out_channels=out_channels,
          kernel_size=3,
          act=None,
          name=name + "_branch2b",
      )
  
      if not shortcut:
          self.short = L.ConvBNLayer(
              in_channels=in_channels,
              out_channels=out_channels,
              kernel_size=1,
              stride=1,
              is_vd_mode=False if if_first else True,
              name=name + "_branch1",
          )
  
      self.shortcut = shortcut
  
file_path: PaddleHub/modules/image/semantic_segmentation/ginet_resnet50vd_voc/resnet.py
imports: import ginet_resnet50vd_voc.layers
  import paddle
  import paddle.nn
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, name)