code: def window_unpartition(x, pad_hw, num_hw, hw):
      """
      Window unpartition into original sequences and removing padding.
      Args:
          x (tensor): input tokens with [B * num_windows, window_size, window_size, C].
          pad_hw (Tuple): padded height and width (Hp, Wp).
          hw (Tuple): original height and width (H, W) before padding.
      Returns:
          x: unpartitioned sequences with [B, H, W, C].
      """
      Hp, Wp = pad_hw
      num_h, num_w = num_hw
      H, W = hw
      B, window_size, _, C = paddle.shape(x)
      B = B // (num_h * num_w)
      x = x.reshape([B, num_h, num_w, window_size, window_size, C])
      x = x.transpose([0, 1, 3, 2, 4, 5]).reshape([B, Hp, Wp, C])
  
      return x[:, :H, :W, :]
  
file_path: PaddleDetection/ppdet/modeling/backbones/transformer_utils.py
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddle.nn.initializer import TruncatedNormal, Constant, Assign
label_desc: Use image node_id 5 for calling a global function with example usage: window_unpartition(x, pad_hw, num_hw, hw) and returns: x