class_docstr: Image to Patch Embedding
      
code: def __init__(
      self,
      img_size=224,
      patch_size=16,
      in_chans=3,
      embed_dim=768,
      ratio=1,
  ):
      super().__init__()
      img_size = to_2tuple(img_size)
      patch_size = to_2tuple(patch_size)
  
      num_patches = (
          (img_size[1] // patch_size[1])
          * (img_size[0] // patch_size[0])
          * (ratio**2)
      )
      self.img_size = img_size
      self.patch_size = patch_size
      self.num_patches = num_patches
  
      self.proj = nn.Conv2D(
          in_chans,
          embed_dim,
          kernel_size=patch_size,
          stride=(patch_size[0] // ratio),
          padding=(4 + 2 * (ratio // 2 - 1), 4 + 2 * (ratio // 2 - 1)),
      )
  
imports: from collections.abc import Callable
  import numpy
  import paddle
  import paddle.nn
  from paddle.nn.initializer import TruncatedNormal, Constant, Normal
  from ppdet.core.workspace import register, serializable
label_desc: Use image node_id 1 to create a new PatchEmbed object from inherited base classes: nn with example: obj = PatchEmbed(img_size, patch_size, in_chans, embed_dim, ratio)