class_docstr: Bottleneck for SENet154.
class_docstr_tok: ["Bottleneck","for","SENet154","."]
code: def __init__(
      self,
      spatial_dims: int,
      inplanes: int,
      planes: int,
      groups: int,
      reduction: int,
      stride: int = 1,
      downsample: Convolution | None = None,
  ) -> None:
      conv_param_1 = {
          "strides": 1,
          "kernel_size": 1,
          "act": ("relu", {"inplace": True}),
          "norm": Norm.BATCH,
          "bias": False,
      }
      conv_param_2 = {
          "strides": stride,
          "kernel_size": 3,
          "act": ("relu", {"inplace": True}),
          "norm": Norm.BATCH,
          "groups": groups,
          "bias": False,
      }
      conv_param_3 = {
          "strides": 1,
          "kernel_size": 1,
          "act": None,
          "norm": Norm.BATCH,
          "bias": False,
      }
  
      super().__init__(
          spatial_dims=spatial_dims,
          in_channels=inplanes,
          n_chns_1=planes * 2,
          n_chns_2=planes * 4,
          n_chns_3=planes * 4,
          conv_param_1=conv_param_1,
          conv_param_2=conv_param_2,
          conv_param_3=conv_param_3,
          project=downsample,
          r=reduction,
      )
  
imports: from __future__ import annotations
  import math
  import torch
  import torch.nn
  from monai.networks.blocks import Convolution
  from monai.networks.layers.factories import Act, Conv, Norm, Pool, split_args
label_desc: Use image node_id 1 to create a new SEBottleneck object from inherited base classes: SEBlock with example: obj = SEBottleneck(spatial_dims, inplanes, planes, groups, reduction, stride, downsample)