code: def __init__(self, in_planes, out_planes, stride, drop_rate=0.0):
      super(BasicBlock, self).__init__()
      self.bn1 = nn.BatchNorm2d(in_planes)
      self.relu1 = nn.ReLU(inplace=True)
      self.conv1 = nn.Conv2d(
          in_planes,
          out_planes,
          kernel_size=3,
          stride=stride,
          padding=1,
          bias=False,
      )
      self.bn2 = nn.BatchNorm2d(out_planes)
      self.relu2 = nn.ReLU(inplace=True)
      self.conv2 = nn.Conv2d(
          out_planes,
          out_planes,
          kernel_size=3,
          stride=1,
          padding=1,
          bias=False,
      )
      self.drop_rate = drop_rate
      self.in_out_equal = in_planes == out_planes
  
      if not self.in_out_equal:
          self.conv_shortcut = nn.Conv2d(
              in_planes,
              out_planes,
              kernel_size=1,
              stride=stride,
              padding=0,
              bias=False,
          )
  
imports: import math
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new BasicBlock object from inherited base classes: nn with example: obj = BasicBlock(in_planes, out_planes, stride, drop_rate)