code: def _validate_canonical(self):
      super()._validate_canonical()
      utils.validate_gpu_indices(self.gpu_indices)
      if self.trial_gpu_number and self.use_active_gpu is None:
          raise ValueError(
              "LocalConfig: please set use_active_gpu to True if your system has GUI, "
              "or set it to False if the computer runs multiple experiments concurrently."
          )
      if (
          not self.trial_gpu_number
          and self.max_trial_number_per_gpu != 1
      ):
          raise ValueError(
              "LocalConfig: max_trial_number_per_gpu does not work without trial_gpu_number"
          )
  
file_path: nni/nni/experiment/config/training_services/local.py
imports: from dataclasses import dataclass
  from typing import List, Optional, Union
  from typing_extensions import Literal
  from ..training_service import TrainingServiceConfig
  from ..None import utils
label_desc: Use image node_id 2 for calling the LocalConfig obj's underlying member method code with example usage: obj._validate_canonical() without return types