code: def __init__(
      self, inplanes, planes, stride=1, downsample=None, dcn=None
  ):
      super(Bottleneck, self).__init__()
      self.with_dcn = dcn is not None
      self.conv1 = nn.Conv2D(
          inplanes, planes, kernel_size=1, bias_attr=False
      )
      self.bn1 = BatchNorm2d(planes, momentum=0.1)
      self.with_modulated_dcn = False
      if not self.with_dcn:
          self.conv2 = nn.Conv2D(
              planes,
              planes,
              kernel_size=3,
              stride=stride,
              padding=1,
              bias_attr=False,
          )
      else:
          deformable_groups = dcn.get("deformable_groups", 1)
          from paddle.vision.ops import DeformConv2D
  
          offset_channels = 18
          self.conv2_offset = nn.Conv2D(
              planes,
              deformable_groups * offset_channels,
              stride=stride,
              kernel_size=3,
              padding=1,
          )
          self.conv2 = DeformConv2D(
              planes,
              planes,
              kernel_size=3,
              padding=1,
              stride=stride,
              bias_attr=False,
          )
      self.bn2 = BatchNorm2d(planes, momentum=0.1)
      self.conv3 = nn.Conv2D(
          planes, planes * 4, kernel_size=1, bias_attr=False
      )
      self.bn3 = BatchNorm2d(planes * 4, momentum=0.1)
      self.relu = nn.ReLU()
      self.downsample = downsample
      self.stride = stride
      self.dcn = dcn
      self.with_dcn = dcn is not None
  
imports: import math
  import paddle
  from paddle import nn
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, downsample, dcn)