class_docstr: Hook called after every forward pass (to check training doesn't give NaN),
  after every step and at the end of epoch (to check if the model should be checkpointed)
  and print the meters values at the end of every phase.
class_docstr_tok: ["Hook","called","after","every","forward","pass","(","to","check","training","does","n't","give","NaN",")",",","after","every","step","and","at","the","end","of","epoch","(","to","check","if","the","model","should","be","checkpointed",")","and","print","the","meters","values","at","the","end","of","every","phase","."]
code: def __init__(self, world_size: int):
      super().__init__()
      self.world_size = world_size
  
imports: import atexit
  import datetime
  import json
  import logging
  import time
  from typing import List, Optional
  import torch
  from classy_vision import meters, tasks
  from classy_vision.generic.distributed_util import get_rank, is_primary
  from classy_vision.hooks.classy_hook import ClassyHook
  from fairscale.nn.data_parallel import FullyShardedDataParallel
  from iopath.common.file_io import g_pathmgr
  from vissl.models.model_helpers import model_output_has_nan
  from vissl.utils.checkpoint import CheckpointWriter, is_checkpoint_phase
  from vissl.utils.env import get_machine_local_and_dist_rank
  from vissl.utils.io import save_file
  from vissl.utils.logger import log_gpu_stats
  from vissl.utils.perf_stats import PerfStats
label_desc: Use image node_id 1 to create a new LogLossMetricsCheckpointHook object from inherited base classes: ClassyHook with example: obj = LogLossMetricsCheckpointHook(world_size)