class_docstr: Hook executed after every parameters update step. Logs training
  stats like: LR, iteration, ETA, batch time etc to logger streams.
class_docstr_tok: ["Hook","executed","after","every","parameters","update","step",".","Logs","training","stats","like",":","LR",",","iteration",",","ETA",",","batch","time","etc","to","logger","streams","."]
docstr: At the creation of the training loop, initialize a dictionary
  that can be used to set additional information to log at each
  epoch. This dictionary will be reset after each log.
docstr_tok: ["At","the","creation","of","the","training","loop",",","initialize","a","dictionary","that","can","be","used","to","set","additional","information","to","log","at","each","epoch",".","This","dictionary","will","be","reset","after","each","log","."]
code: def on_start(self, task: "tasks.ClassyTask") -> None:
      """
      At the creation of the training loop, initialize a dictionary
      that can be used to set additional information to log at each
      epoch. This dictionary will be reset after each log.
      """
      task.additional_log_data = {}
  
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 2 for calling the LogLossLrEtaHook obj's underlying member method code with example usage: obj.on_start(task) without return types