code: def forward(self, pixel_values: torch.FloatTensor) -> torch.Tensor:
      batch_size = pixel_values.shape[0]
      target_dtype = self.patch_embedding.weight.dtype
      patch_embeds = self.patch_embedding(
          pixel_values.to(dtype=target_dtype)
      )  # shape = [*, width, grid, grid]
      patch_embeds = patch_embeds.flatten(2).transpose(1, 2)
  
      class_embeds = self.class_embedding.expand(batch_size, 1, -1)
      embeddings = torch.cat([class_embeds, patch_embeds], dim=1)
      embeddings = embeddings + self.position_embedding(
          self.position_ids
      )
      return embeddings
  
imports: from dataclasses import dataclass
  from typing import Optional, Tuple, Union
  import torch
  import torch.utils.checkpoint
  from torch import nn
  from transformers.activations import ACT2FN
  from transformers.modeling_outputs import BaseModelOutput, BaseModelOutputWithPooling
  from transformers.utils import ModelOutput, logging
  from text_generation_server.utils.layers import TensorParallelColumnLinear, TensorParallelRowLinear, TensorParallelEmbedding
label_desc: Use image node_id 2 for calling the IdeficsVisionEmbeddings obj's underlying member method code with example usage: obj.forward(pixel_values) and returns: embeddings