code: def __init__(
      self,
      in_channel,
      out_channel,
      stride=1,
      downsample=None,
      norm_layer=None,
  ):
      super().__init__()
      if norm_layer is None:
          norm_layer = nn.BatchNorm2d
  
      self.conv1 = nn.Conv2d(
          in_channels=in_channel,
          out_channels=out_channel,
          kernel_size=1,
          stride=1,
          bias=False,
      )  # squeeze channels
      self.bn1 = norm_layer(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 = norm_layer(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 = norm_layer(out_channel * self.expansion)
      self.relu = nn.ReLU(inplace=True)
      self.downsample = downsample
  
file_path: deep-learning-for-image-processing/pytorch_object_detection/retinaNet/backbone/resnet50_fpn_model.py
imports: import os
  import torch.nn
  import torch
  from torchvision.ops.misc import FrozenBatchNorm2d
  from .feature_pyramid_network import LastLevelMaxPool, BackboneWithFPN
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, norm_layer)