code: def get_splits_to_compute_embeddings(
      self, dataset_dict, splits_to_eval
  ):
      if splits_to_eval is None:
          splits_to_eval = [(k, [k]) for k in dataset_dict]
      query_splits = [t[0] for t in splits_to_eval]
      assert len(query_splits) == len(
          set(query_splits)
      ), "Unsupported: Evaluating a query split more than once"
      splits_to_compute_embeddings = set()
      for i, (query_split, reference_splits) in enumerate(
          splits_to_eval
      ):
          splits_to_compute_embeddings.update(
              reference_splits + [query_split]
          )
          if query_split in reference_splits:
              # AccuracyCalculator requires that query be at the beginning of ref
              reference_splits.remove(query_split)
              splits_to_eval[i] = (
                  query_split,
                  [query_split] + reference_splits,
              )
      return splits_to_eval, list(splits_to_compute_embeddings)
  
imports: from collections import defaultdict
  import torch
  import tqdm
  from ..utils import common_functions
  from ..utils import inference
  from ..utils.accuracy_calculator import AccuracyCalculator
label_desc: Use image node_id 17 for calling the BaseTester obj's underlying member method code with example usage: obj.get_splits_to_compute_embeddings(dataset_dict, splits_to_eval) and returns: splits_to_eval,  list