class_docstr: Focus width and height information into channel space.
  
  Args:
      in_channels (int): The input channels of this Module.
      out_channels (int): The output channels of this Module.
      kernel_size (int): The kernel size of the convolution. Default: 1
      stride (int): The stride of the convolution. Default: 1
      conv_cfg (dict): Config dict for convolution layer. Default: None,
          which means using conv2d.
      norm_cfg (dict): Config dict for normalization layer.
          Default: dict(type='BN', momentum=0.03, eps=0.001).
      act_cfg (dict): Config dict for activation layer.
          Default: dict(type='Swish').
code: def forward(self, x):
      # shape of x (b,c,w,h) -> y(b,4c,w/2,h/2)
      patch_top_left = x[..., ::2, ::2]
      patch_top_right = x[..., ::2, 1::2]
      patch_bot_left = x[..., 1::2, ::2]
      patch_bot_right = x[..., 1::2, 1::2]
      x = torch.cat(
          (
              patch_top_left,
              patch_bot_left,
              patch_top_right,
              patch_bot_right,
          ),
          dim=1,
      )
      return self.conv(x)
  
imports: import math
  import torch
  import torch.nn
  from mmcv.cnn import ConvModule, DepthwiseSeparableConvModule
  from mmengine.model import BaseModule
  from torch.nn.modules.batchnorm import _BatchNorm
  from mmdet.registry import MODELS
  from ..layers import CSPLayer
label_desc: Use image node_id 2 for calling the Focus obj's underlying member method code with example usage: obj.forward(x) and returns: self