code: def run_engine(
      self,
      cfg: AttrDict,
      dist_run_id: str,
      checkpoint_path: str,
      checkpoint_folder: str,
      local_rank: int = 0,
      node_id: int = 0,
      hook_generator: Callable[
          [Any], List[ClassyHook]
      ] = default_hook_generator,
  ):
      train_main(
          cfg,
          dist_run_id,
          checkpoint_path,
          checkpoint_folder,
          local_rank=local_rank,
          node_id=node_id,
          hook_generator=hook_generator,
      )
  
file_path: vissl/vissl/engines/train.py
imports: import logging
  import os
  from typing import Any, Callable, List
  import torch
  from classy_vision.hooks.classy_hook import ClassyHook
  from vissl.config import AttrDict
  from vissl.engines.engine_registry import Engine, register_engine
  from vissl.hooks import default_hook_generator
  from vissl.trainer import SelfSupervisionTrainer
  from vissl.utils.collect_env import collect_env_info
  from vissl.utils.env import get_machine_local_and_dist_rank, print_system_env_info, set_env_vars
  from vissl.utils.hydra_config import print_cfg
  from vissl.utils.logger import setup_logging, shutdown_logging
  from vissl.utils.misc import set_seeds, setup_multiprocessing_method
label_desc: Use image node_id 1 for calling the TrainerEngine obj's underlying member method code with example usage: obj.run_engine(cfg, dist_run_id, checkpoint_path, checkpoint_folder, local_rank, node_id, hook_generator) without return types