docstr: This function is responsible to determine if the best model selection
  is going to be on the validation or test datasets
docstr_tok: ["This","function","is","responsible","to","determine","if","the","best","model","selection","is","going","to","be","on","the","validation","or","test","datasets"]
code: def resolve_saving_stage(self, selection_stage):
      """This function is responsible to determine if the best model selection
      is going to be on the validation or test datasets
      """
      log.info(
          "Available stage selection datasets: {} {} {}".format(
              COLORS.IPurple,
              self.available_stage_names,
              COLORS.END_NO_TOKEN,
          )
      )
  
      if self.num_test_datasets > 1 and not self._contains_dataset_name:
          msg = "If you want to have better trackable names for your test datasets, add a "
          msg += COLORS.IPurple + "name" + COLORS.END_NO_TOKEN
          msg += " attribute to them"
          log.info(msg)
  
      if selection_stage == "":
          if self.has_val_loader:
              selection_stage = self.val_dataset.name
          else:
              selection_stage = self.test_dataset[0].name
      log.info(
          "The models will be selected using the metrics on following dataset: {} {} {}".format(
              COLORS.IPurple, selection_stage, COLORS.END_NO_TOKEN
          )
      )
      return selection_stage
  
imports: import os
  from abc import ABC, abstractmethod
  import logging
  import functools
  from functools import partial
  import numpy
  import torch
  import torch_geometric
  from torch_geometric.transforms import Compose, FixedPoints
  import copy
  from torch_points3d.models import model_interface
  from torch_points3d.core.data_transform import instantiate_transforms, MultiScaleTransform
  from torch_points3d.core.data_transform import instantiate_filters
  from torch_points3d.datasets.batch import SimpleBatch
  from torch_points3d.datasets.multiscale_data import MultiScaleBatch
  from torch_points3d.utils.enums import ConvolutionFormat
  from torch_points3d.utils.config import ConvolutionFormatFactory
  from torch_points3d.utils.colors import COLORS, colored_print
label_desc: Use image node_id 42 for calling the BaseDataset obj's underlying member method code with example usage: obj.resolve_saving_stage(selection_stage) and returns: selection_stage