class_docstr: Bottleneck transformation: Tx1x1, 1x3x3, 1x1x1, where T is the size of
      temporal kernel.
class_docstr_tok: ["Bottleneck","transformation",":","Tx1x1",",","1x3x3",",","1x1x1",",","where","T","is","the","size","of","temporal","kernel","."]
code: def _construct(
      self,
      dim_in,
      dim_out,
      stride,
      dim_inner,
      num_groups,
      dilation,
      norm_module,
  ):
      (str1x1, str3x3) = (
          (stride, 1) if self._stride_1x1 else (1, stride)
      )
  
      # Tx1x1, BN, ReLU.
      self.a = nn.Conv3d(
          dim_in,
          dim_inner,
          kernel_size=[self.temp_kernel_size, 1, 1],
          stride=[1, str1x1, str1x1],
          padding=[int(self.temp_kernel_size // 2), 0, 0],
          bias=False,
      )
      self.a_bn = norm_module(
          num_features=dim_inner, eps=self._eps, momentum=self._bn_mmt
      )
      self.a_relu = nn.ReLU(inplace=self._inplace_relu)
  
      # 1x3x3, BN, ReLU.
      self.b = nn.Conv3d(
          dim_inner,
          dim_inner,
          [1, 3, 3],
          stride=[1, str3x3, str3x3],
          padding=[0, dilation, dilation],
          groups=num_groups,
          bias=False,
          dilation=[1, dilation, dilation],
      )
      self.b_bn = norm_module(
          num_features=dim_inner, eps=self._eps, momentum=self._bn_mmt
      )
      self.b_relu = nn.ReLU(inplace=self._inplace_relu)
  
      # 1x1x1, BN.
      self.c = nn.Conv3d(
          dim_inner,
          dim_out,
          kernel_size=[1, 1, 1],
          stride=[1, 1, 1],
          padding=[0, 0, 0],
          bias=False,
      )
      self.c.final_conv = True
  
      self.c_bn = norm_module(
          num_features=dim_out, eps=self._eps, momentum=self._bn_mmt
      )
      self.c_bn.transform_final_bn = True
  
imports: import torch
  import torch.nn
  from slowfast.models.common import drop_path
  from slowfast.models.nonlocal_helper import Nonlocal
  from slowfast.models.operators import SE, Swish
label_desc: Use image node_id 2 for calling the BottleneckTransform obj's underlying member method code with example usage: obj._construct(dim_in, dim_out, stride, dim_inner, num_groups, dilation, norm_module) without return types