code: def __getitem__(self, idx):
      texts1 = self.process_batch(
          {"text": self.texts1[idx]}, task="text-vectorisation"
      )
      texts2 = self.process_batch(
          {"text": self.texts2[idx]}, task="text-vectorisation"
      )
  
      if isinstance(texts1, torch.Tensor):
          texts1 = texts1.squeeze(0)
      else:
          texts1 = {k: v.squeeze(0) for k, v in texts1.items()}
  
      if isinstance(texts2, torch.Tensor):
          texts2 = texts2.squeeze(0)
      else:
          texts2 = {k: v.squeeze(0) for k, v in texts2.items()}
  
      imgs1 = self.process_batch(
          {"image": self.imgs1[idx]}, task="image-vectorisation"
      )
      imgs2 = self.process_batch(
          {"image": self.imgs2[idx]}, task="image-vectorisation"
      )
  
      similarity_scores = torch.tensor(self.similarity_scores[idx])
  
      return texts1, imgs1, texts2, imgs2, similarity_scores
  
imports: import torch
  from torch.utils.data import Dataset
  from PIL import Image
  import numpy
label_desc: Use image node_id 3 for calling the ImageTextPairDataset obj's underlying member method code with example usage: obj.__getitem__(idx) and returns: texts1,  imgs1,  texts2,  imgs2,  similarity_scores