class_docstr: The Slurm Evaluator is a class designed to continuously monitor VISSL pretrainings
  and launch evaluations as checkpoints become available. The method takes a
  config dictionary consisting of the training checkpoint directory, an array of
  benchmarks, and information on how often to evaluate the trainings.
docstr: Validate the class instance is valid.
docstr_tok: ["Validate","the","class","instance","is","valid","."]
code: def validate(self):
      """
      Validate the class instance is valid.
      """
      assert not (
          self.autoload_slurm_evaluator_checkpoint
          and self.slurm_evaluator_checkpoint
      ), "Specify only one of autoload_slurm_evaluator_checkpoint and slurm_evaluator_checkpoint"  # NOQA
      assert (
          type(self.evaluation_iter_freq) is int
          and self.evaluation_iter_freq >= -1
      ), "The evaluation_iter_freq must be an int >= 1"
      assert (
          type(self.evaluation_phase_freq) is int
          and self.evaluation_phase_freq >= -1
      ), "The evaluation_phase_freq must be an int >= 1"
      assert (
          self.evaluation_iter_freq >= -1
          or self.evaluation_phase_freq >= -1
          or self.evaluate_final_phase
      ), "Please specify evaluation_iter_freq, evaluation_phase_freq, or evaluate_final_phase"  # NOQA
      assert (
          type(self.max_retries) is int and self.max_retries >= -1
      ), "Max retries must be >= -1."
  
imports: import collections
  import json
  import logging
  import os
  import time
  from datetime import datetime
  from pathlib import Path
  from typing import List
  import submitit
  from iopath.common.file_io import g_pathmgr
  from vissl.config.attr_dict import AttrDict
  from vissl.utils.distributed_launcher import launch_distributed_on_slurm
  from vissl.utils.hydra_config import compose_hydra_configuration, convert_to_attrdict
  from vissl.utils.io import load_file, makedir
  from vissl.utils.misc import flatten_dict, retry
label_desc: Use image node_id 7 for calling the BenchmarkSuiteScheduler obj's underlying member method code with example usage: obj.validate() without return types