class_docstr: Image to Patch Embedding
  
  Args:
      patch_size (int): Patch token size. Default: 4.
      in_chans (int): Number of input image channels. Default: 3.
      embed_dim (int): Number of linear projection output channels. Default: 96.
      norm_layer (nn.Module, optional): Normalization layer. Default: None
class_docstr_tok: ["Image","to","Patch","Embedding","Args",":","patch_size","(","int",")",":","Patch","token","size",".","Default",":","4.","in_chans","(","int",")",":","Number","of","input","image","channels",".","Default",":","3.","embed_dim","(","int",")",":","Number","of","linear","projection","output","channels",".","Default",":","96.","norm_layer","(","nn.Module",",","optional",")",":","Normalization","layer",".","Default",":","None"]
docstr: Forward function.
code: def forward(self, x):
      """Forward function."""
      # padding
      _, _, H, W = x.size()
      if W % self.patch_size[1] != 0:
          x = F.pad(x, (0, self.patch_size[1] - W % self.patch_size[1]))
      if H % self.patch_size[0] != 0:
          x = F.pad(
              x, (0, 0, 0, self.patch_size[0] - H % self.patch_size[0])
          )
  
      x = self.proj(x)  # B C Wh Ww
      if self.norm is not None:
          Wh, Ww = x.size(2), x.size(3)
          x = x.flatten(2).transpose(1, 2)
          x = self.norm(x)
          x = x.transpose(1, 2).view(-1, self.embed_dim, Wh, Ww)
  
      return x
  
imports: from collections import OrderedDict
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  import torch.utils.checkpoint
  from torch import Tensor
  from .common import EncoderModule, _take, make_n_channel_input
  from ..activations import get_activation_block, ACT_GELU
  from timm.models.layers import DropPath, to_2tuple, trunc_normal_
label_desc: Use image node_id 2 for calling the PatchEmbed obj's underlying member method code with example usage: obj.forward(x) and returns: x