docstr: Called at the beginning of training.
  Subclasses should override for any actions to run.
  :param logs: Dict. Currently, no data is passed to this argument for this method
    but that may change in the future.
code: def before_run(self, runner):
      """
      Called at the beginning of training.
      Subclasses should override for any actions to run.
      :param logs: Dict. Currently, no data is passed to this argument for this method
        but that may change in the future.
      """
      is_rank_zero = self._is_rank_zero(runner)
      if "config" in self.kwargs:
          config = self.kwargs.pop("configs")
      else:
          config = {}
      if self.log_config:
          trainer_config = copy.copy(runner.config)
          config.update(trainer_config)
  
      if is_rank_zero:
          self.run = wandb.init(
              project=self.project, config=config, **self.kwargs
          )
          if self.watch_model:
              self.run.watch(self.model)
      else:
          self.run = None
  
file_path: BigDL/python/orca/src/bigdl/orca/learn/pytorch/callbacks/wandb.py
imports: from bigdl.orca.learn.pytorch.callbacks import Callback
  from bigdl.dllib.utils.log4Error import invalidInputError
  import copy
label_desc: Use image node_id 3 for calling the WandbLoggerCallback obj's underlying member method code with example usage: obj.before_run(runner) without return types