class_docstr: Residual block.
class_docstr_tok: ["Residual","block","."]
code: def _construct(
      self,
      dim_in,
      dim_out,
      temp_kernel_size,
      stride,
      trans_func,
      dim_inner,
      num_groups,
      stride_1x1,
      inplace_relu,
      dilation,
      norm_module,
      block_idx,
  ):
      # Use skip connection with projection if dim or res change.
      if (dim_in != dim_out) or (stride != 1):
          self.branch1 = nn.Conv3d(
              dim_in,
              dim_out,
              kernel_size=1,
              stride=[1, stride, stride],
              padding=0,
              bias=False,
              dilation=1,
          )
          self.branch1_bn = norm_module(
              num_features=dim_out, eps=self._eps, momentum=self._bn_mmt
          )
      self.branch2 = trans_func(
          dim_in,
          dim_out,
          temp_kernel_size,
          stride,
          dim_inner,
          num_groups,
          stride_1x1=stride_1x1,
          inplace_relu=inplace_relu,
          dilation=dilation,
          norm_module=norm_module,
          block_idx=block_idx,
      )
      self.relu = nn.ReLU(self._inplace_relu)
  
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 ResBlock obj's underlying member method code with example usage: obj._construct(dim_in, dim_out, temp_kernel_size, stride, trans_func, dim_inner, num_groups, stride_1x1, inplace_relu, dilation, norm_module, block_idx) without return types