class_docstr: A basic Swin Transformer layer for one stage.
  Args:
      dim (int): Number of input channels.
      input_resolution (tuple[int]): Input resolution.
      depth (int): Number of blocks.
      num_heads (int): Number of attention heads.
      window_size (int): Local window size.
      mlp_ratio (float): Ratio of mlp hidden dim to embedding dim.
      qkv_bias (bool, optional): If True, add a learnable bias to query, key, value. Default: True
      drop (float, optional): Dropout rate. Default: 0.0
      attn_drop (float, optional): Attention dropout rate. Default: 0.0
      drop_path (float | tuple[float], optional): Stochastic depth rate. Default: 0.0
      norm_layer (nn.Module, optional): Normalization layer. Default: nn.LayerNorm
      downsample (nn.Module | None, optional): Downsample layer at the end of the layer. Default: None
      use_checkpoint (bool): Whether to use checkpointing to save memory. Default: False.
      pretrained_window_size (int): Local window size in pre-training.
code: def forward(self, x):
      for blk in self.blocks:
          if not torch.jit.is_scripting() and self.use_checkpoint:
              x = checkpoint.checkpoint(blk, x)
          else:
              x = blk(x)
      if self.downsample is not None:
          x = self.downsample(x)
      return x
  
file_path: towhee/towhee/models/swin_transformer/basic_layer.py
imports: import torch
  from torch import nn
  from torch.utils import checkpoint
  from .swin_transformer_block import SwinTransformerBlock
label_desc: Use image node_id 2 for calling the BasicLayer obj's underlying member method code with example usage: obj.forward(x) and returns: x