class_docstr: BottleBlock for TridentResNet.
  
  Args:
      trident_dilations (tuple[int, int, int]): Dilations of different
          trident branch.
      test_branch_idx (int): In inference, all 3 branches will be used
          if `test_branch_idx==-1`, otherwise only branch with index
          `test_branch_idx` will be used.
      concat_output (bool): Whether to concat the output list to a Tensor.
          `True` only in the last Block.
code: def __init__(
      self, trident_dilations, test_branch_idx, concat_output, **kwargs
  ):
      super(TridentBottleneck, self).__init__(**kwargs)
      self.trident_dilations = trident_dilations
      self.num_branch = len(trident_dilations)
      self.concat_output = concat_output
      self.test_branch_idx = test_branch_idx
      self.conv2 = TridentConv(
          self.planes,
          self.planes,
          kernel_size=3,
          stride=self.conv2_stride,
          bias=False,
          trident_dilations=self.trident_dilations,
          test_branch_idx=test_branch_idx,
          init_cfg=dict(
              type="Kaiming",
              distribution="uniform",
              mode="fan_in",
              override=dict(name="conv2"),
          ),
      )
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  import torch.utils.checkpoint
  from mmcv.cnn import build_conv_layer, build_norm_layer
  from mmengine.model import BaseModule
  from torch.nn.modules.utils import _pair
  from mmdet.models.backbones.resnet import Bottleneck, ResNet
  from mmdet.registry import MODELS
label_desc: Use image node_id 1 to create a new TridentBottleneck object from inherited base classes: Bottleneck with example: obj = TridentBottleneck(trident_dilations, test_branch_idx, concat_output)