code: def load_item(self, idx):
      sample_info = self.annotation_db[idx]
      sample_info = self.preprocess_sample_info(sample_info)
      current_sample = Sample()
  
      if self._dataset_type != "test":
          text_processor_argument = {
              "tokens": sample_info["caption_tokens"]
          }
          processed_caption = self.text_processor(
              text_processor_argument
          )
          current_sample.text = processed_caption["text"]
          current_sample.caption_id = torch.tensor(
              sample_info["caption_id"], dtype=torch.int
          )
          current_sample.caption_len = torch.tensor(
              len(sample_info["caption_tokens"]), dtype=torch.int
          )
  
      current_sample.image_id = object_to_byte_tensor(
          sample_info["image_id"]
      )
  
      if self._use_features:
          features = self.features_db[idx]
          current_sample.update(features)
      else:
          image_path = str(sample_info["image_name"]) + ".jpg"
          current_sample.image = self.image_db.from_path(image_path)[
              "images"
          ][0]
  
      # Add reference captions to sample
      current_sample = self.add_reference_caption(
          sample_info, current_sample
      )
  
      return current_sample
  
file_path: mmf/mmf/datasets/builders/coco/dataset.py
imports: import torch
  from mmf.common.sample import Sample
  from mmf.datasets.builders.vqa2 import VQA2Dataset
  from mmf.utils.distributed import byte_tensor_to_object, object_to_byte_tensor
label_desc: Use image node_id 3 for calling the COCODataset obj's underlying member method code with example usage: obj.load_item(idx) and returns: current_sample