code: def __init__(
      self, in_channel, out_channel, stride=1, downsample=None
  ):
      super(Bottleneck, self).__init__()
      self.conv1 = nn.Conv2d(
          in_channels=in_channel,
          out_channels=out_channel,
          kernel_size=1,
          stride=1,
          bias=False,
      )  # squeeze channels
      self.bn1 = nn.BatchNorm2d(out_channel)
      # -----------------------------------------
      self.conv2 = nn.Conv2d(
          in_channels=out_channel,
          out_channels=out_channel,
          kernel_size=3,
          stride=stride,
          bias=False,
          padding=1,
      )
      self.bn2 = nn.BatchNorm2d(out_channel)
      # -----------------------------------------
      self.conv3 = nn.Conv2d(
          in_channels=out_channel,
          out_channels=out_channel * self.expansion,
          kernel_size=1,
          stride=1,
          bias=False,
      )  # unsqueeze channels
      self.bn3 = nn.BatchNorm2d(out_channel * self.expansion)
      self.relu = nn.ReLU(inplace=True)
      self.downsample = downsample
  
file_path: deep-learning-for-image-processing/pytorch_object_detection/ssd/src/res50_backbone.py
imports: import torch.nn
  import torch
label_desc: Use image node_id 1 to create a new Bottleneck object from inherited base classes: nn with example: obj = Bottleneck(in_channel, out_channel, stride, downsample)