code: def __init__(self, inplanes, planes, stride=1, expansion=4):
      super(Bottleneck, self).__init__()
      planes = int(planes / expansion)
      self.conv1 = nn.Conv2d(inplanes, planes, kernel_size=1, bias=True)
      self.bn1 = nn.BatchNorm2d(planes)
      self.conv2 = nn.Conv2d(
          planes,
          planes,
          kernel_size=3,
          stride=stride,
          padding=1,
          bias=True,
      )
      self.bn2 = nn.BatchNorm2d(planes)
      self.conv3 = nn.Conv2d(
          planes, planes * expansion, kernel_size=1, bias=True
      )
      self.bn3 = nn.BatchNorm2d(planes * expansion)
      self.relu = nn.ReLU(inplace=True)
      self.stride = stride
      self.expansion = expansion
      if inplanes != planes * self.expansion:
          self.downsample = nn.Sequential(
              nn.Conv2d(
                  inplanes,
                  planes * self.expansion,
                  kernel_size=1,
                  stride=stride,
                  bias=True,
              ),
              nn.BatchNorm2d(planes * self.expansion),
          )
      else:
          self.downsample = None
  
file_path: nni/examples/nas/legacy/cream/lib/models/blocks/residual_block.py
imports: import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new Bottleneck object from inherited base classes: nn with example: obj = Bottleneck(inplanes, planes, stride, expansion)