class_docstr: Callback for logging experiments to Weights and Biases.
  
  Log SB3 experiments to Weights and Biases
      - Added model tracking and uploading
      - Added complete hyperparameters recording
      - Added gradient logging
      - Note that `wandb.init(...)` must be called before the WandbCallback can be used.
  
  Args:
      verbose: The verbosity of sb3 output
      model_save_path: Path to the folder where the model will be saved, The default value is `None` so the model is not logged
      model_save_freq: Frequency to save the model
      gradient_save_freq: Frequency to log gradient. The default value is 0 so the gradients are not logged
      log: What to log. One of "gradients", "parameters", or "all".
code: def _init_callback(self) -> None:
      d = {}
      if "algo" not in d:
          d["algo"] = type(self.model).__name__
      for key in self.model.__dict__:
          if key in wandb.config:
              continue
          if type(self.model.__dict__[key]) in [float, int, str]:
              d[key] = self.model.__dict__[key]
          else:
              d[key] = str(self.model.__dict__[key])
      if self.gradient_save_freq > 0:
          wandb.watch(
              self.model.policy,
              log_freq=self.gradient_save_freq,
              log=self.log,
          )
      wandb.config.setdefaults(d)
  
file_path: wandb/wandb/integration/sb3/sb3.py
imports: import logging
  import os
  import sys
  from typing import Optional
  from stable_baselines3.common.callbacks import BaseCallback
  import wandb
  from wandb.sdk.lib import telemetry
label_desc: Use image node_id 2 for calling the WandbCallback obj's underlying member method code with example usage: obj._init_callback() without return types