code: def _check_searcher_compatibility(
      self, args: TrainingArguments
  ) -> None:
      if self.searcher_unit == "batches":
          if args.max_steps == -1:
              self._log_config_mismatch("epochs", args.num_train_epochs)
          elif args.max_steps != self.searcher_max_length:
              self._log_config_mismatch("batches", args.max_steps)
      elif self.searcher_unit == "epochs":
          if args.max_steps != -1:
              self._log_config_mismatch("batches", args.max_steps)
          elif args.num_train_epochs != self.searcher_max_length:
              self._log_config_mismatch("epochs", args.num_train_epochs)
  
imports: import json
  import logging
  import os
  from typing import Any, Dict, List, Optional, Tuple
  from transformers import TrainerCallback, TrainerControl, TrainerState, TrainingArguments
  from transformers.trainer_utils import get_last_checkpoint
  import determined
label_desc: Use image node_id 12 for calling the DetCallback obj's underlying member method code with example usage: obj._check_searcher_compatibility(args) without return types