code: def build_datasets(self, cfg):
      datasets = BaseTask.build_datasets(self, cfg)
  
      # get question file, annotation file and anwser list in COCO format
      for ds_name, dataset in datasets.items():
          for split in dataset:
              if (
                  hasattr(dataset[split], "coco_fmt_qust_file")
                  and dataset[split].coco_fmt_qust_file is not None
              ):
                  self.ques_files[split] = dataset[
                      split
                  ].coco_fmt_qust_file
                  self.anno_files[split] = dataset[
                      split
                  ].coco_fmt_anno_file
  
      if len(self.ques_files) > 0:
          assert len(self.ques_files) == len(
              self.anno_files
          ), "Only support one split for evaluation."
  
      return datasets
  
imports: import logging
  import json
  import os
  import torch
  from tqdm import tqdm
  from lavis.common.utils import is_convertible_to_int
  import lavis.common.dist_utils
  from lavis.common.registry import registry
  from lavis.common.vqa_tools.vqa import VQA
  from lavis.common.vqa_tools.vqa_eval import VQAEval
  from lavis.tasks.base_task import BaseTask
label_desc: Use image node_id 2 for calling the GQATask obj's underlying member method code with example usage: obj.build_datasets(cfg) and returns: datasets