class_docstr: Logs attack results to Weights & Biases.
code: def log_summary_rows(self, rows, title, window_id):
      table = wandb.Table(columns=["Attack Results", ""])
      for row in rows:
          if isinstance(row[1], str):
              try:
                  row[1] = row[1].replace("%", "")
                  row[1] = float(row[1])
              except ValueError:
                  raise ValueError(
                      f'Unable to convert row value "{row[1]}" for Attack Result "{row[0]}" into float'
                  )
          table.add_data(*row)
          metric_name, metric_score = row
          wandb.run.summary[metric_name] = metric_score
      wandb.log({"attack_params": table})
  
file_path: TextAttack/textattack/loggers/weights_and_biases_logger.py
imports: from textattack.shared.utils import LazyLoader, html_table_from_rows
  from .logger import Logger
label_desc: Use image node_id 3 for calling the WeightsAndBiasesLogger obj's underlying member method code with example usage: obj.log_summary_rows(rows, title, window_id) without return types