code: def forward(
      self,
      input_ids: Optional[torch.LongTensor] = None,
      pixel_values: Optional[torch.FloatTensor] = None,
      attention_mask: Optional[torch.Tensor] = None,
      position_ids: Optional[torch.LongTensor] = None,
      return_loss: Optional[bool] = None,
      output_attentions: Optional[bool] = None,
      output_hidden_states: Optional[bool] = None,
      return_dict: Optional[bool] = None,
      head=None,
      output_adapter_gating_scores=False,
      output_adapter_fusion_attentions=False,
      **kwargs,
  ):
      outputs, context = self.clip(
          input_ids=input_ids,
          pixel_values=pixel_values,
          attention_mask=attention_mask,
          position_ids=position_ids,
          return_loss=return_loss,
          output_attentions=output_attentions,
          output_hidden_states=output_hidden_states,
          return_dict=return_dict,
          output_adapter_gating_scores=output_adapter_gating_scores,
          output_adapter_fusion_attentions=output_adapter_fusion_attentions,
          adapter_input_parallelized=kwargs.pop(
              "adapter_input_parallelized", False
          ),
          output_context=True,
      )
      # required e.g. for prompt tuning in all models
      kwargs["context"] = context
  
      if (
          head
          or AdapterSetup.get_context_head_setup()
          or self.active_head
      ):
          head_outputs = self.forward_head(
              outputs,
              head_name=head,
              attention_mask=attention_mask,
              return_dict=return_dict,
              **kwargs,
          )
          return head_outputs
      else:
          # in case no head is used just return the output of the base model (including pooler output)
          return outputs
  
file_path: adapters/src/adapters/models/clip/adapter_model.py
imports: from typing import Optional
  import torch
  from transformers.models.clip.modeling_clip import CLIP_INPUTS_DOCSTRING, CLIP_START_DOCSTRING, CLIPModel, CLIPPreTrainedModel
  from transformers.utils import add_start_docstrings, add_start_docstrings_to_model_forward
  from ...context import AdapterSetup
  from ...heads import ModelWithFlexibleHeadsAdaptersMixin
  from ...model_mixin import EmbeddingAdaptersWrapperMixin
  from ...wrappers import init
label_desc: Use image node_id 2 for calling the CLIPAdapterModel obj's underlying member method code with example usage: obj.forward(input_ids, pixel_values, attention_mask, position_ids, return_loss, output_attentions, output_hidden_states, return_dict, head, output_adapter_gating_scores, output_adapter_fusion_attentions) and returns: head_outputs, outputs