class_docstr: SSL Specific variant of the Classy Vision tensorboard hook
class_docstr_tok: ["SSL","Specific","variant","of","the","Classy","Vision","tensorboard","hook"]
docstr: Called at the start of every epoch if the tensorboard hook is
  enabled.
  Logs the model parameters once at the beginning of training only.
docstr_tok: ["Called","at","the","start","of","every","epoch","if","the","tensorboard","hook","is","enabled",".","Logs","the","model","parameters","once","at","the","beginning","of","training","only","."]
code: def on_phase_start(self, task: "tasks.ClassyTask") -> None:
      """
      Called at the start of every epoch if the tensorboard hook is
      enabled.
      Logs the model parameters once at the beginning of training only.
      """
      if not self.log_params:
          return
  
      # log the parameters just once, before training starts
      if is_primary() and task.train and task.train_phase_idx == 0:
          for name, parameter in task.base_model.named_parameters():
              self.tb_writer.add_histogram(
                  f"Parameters/{name}", parameter, global_step=-1
              )
  
file_path: vissl/vissl/hooks/tensorboard_hook.py
imports: import logging
  import torch
  from classy_vision import tasks
  from classy_vision.generic.distributed_util import is_primary
  from classy_vision.hooks.classy_hook import ClassyHook
  from vissl.utils.activation_statistics import ActivationStatistics, ActivationStatisticsMonitor, ActivationStatisticsObserver
label_desc: Use image node_id 5 for calling the SSLTensorboardHook obj's underlying member method code with example usage: obj.on_phase_start(task) without return types