class_docstr: Writes entries directly to event files in the log_dir to be consumed by TensorBoard.
  
  The `SummaryWriter` class provides a high-level API to create an event file
  in a given directory and add summaries and events to it. The class updates the
  file contents asynchronously. This allows a training program to call methods
  to add data to the file directly from the training loop, without slowing down
  training.
class_docstr_tok: ["Writes","entries","directly","to","event","files","in","the","log_dir","to","be","consumed","by","TensorBoard",".","The","`","SummaryWriter","`","class","provides","a","high-level","API","to","create","an","event","file","in","a","given","directory","and","add","summaries","and","events","to","it",".","The","class","updates","the","file","contents","asynchronously",".","This","allows","a","training","program","to","call","methods","to","add","data","to","the","file","directly","from","the","training","loop",",","without","slowing","down","training","."]
docstr: Add many scalar data to summary.
  
  Args:
      main_tag (str): The parent name for the tags
      tag_scalar_dict (dict): Key-value pair storing the tag and corresponding values
      global_step (int): Global step value to record
      walltime (float): Optional override default walltime (time.time())
        seconds after epoch of event
  
  Examples::
  
      from torch.utils.tensorboard import SummaryWriter
      writer = SummaryWriter()
      r = 5
      for i in range(100):
          writer.add_scalars('run_14h', {'xsinx':i*np.sin(i/r),
                                          'xcosx':i*np.cos(i/r),
                                          'tanx': np.tan(i/r)}, i)
      writer.close()
      # This call adds three values to the same scalar plot with the tag
      # 'run_14h' in TensorBoard's scalar section.
  
  Expected result:
  
  .. image:: _static/img/tensorboard/add_scalars.png
     :scale: 50 %
docstr_tok: ["Add","many","scalar","data","to","summary",".","Args",":","main_tag","(","str",")",":","The","parent","name","for","the","tags","tag_scalar_dict","(","dict",")",":","Key-value","pair","storing","the","tag","and","corresponding","values","global_step","(","int",")",":","Global","step","value","to","record","walltime","(","float",")",":","Optional","override","default","walltime","(","time.time","(",")",")","seconds","after","epoch","of","event","Examples",":",":","from","torch.utils.tensorboard","import","SummaryWriter","writer","=","SummaryWriter","(",")","r","=","5","for","i","in","range","(","100",")",":","writer.add_scalars","(","'run_14h","'",",","{","'xsinx","'",":","i","*","np.sin","(","i\/r",")",",","'xcosx","'",":","i","*","np.cos","(","i\/r",")",",","'tanx","'",":","np.tan","(","i\/r",")","}",",","i",")","writer.close","(",")","#","This","call","adds","three","values","to","the","same","scalar","plot","with","the","tag","#","'run_14h","'","in","TensorBoard","'s","scalar","section",".","Expected","result",":","..","image",":",":","_static\/img\/tensorboard\/add_scalars.png",":","scale",":","50","%"]
code: def add_scalars(
      self, main_tag, tag_scalar_dict, global_step=None, walltime=None
  ):
      """Add many scalar data to summary.
  
      Args:
          main_tag (str): The parent name for the tags
          tag_scalar_dict (dict): Key-value pair storing the tag and corresponding values
          global_step (int): Global step value to record
          walltime (float): Optional override default walltime (time.time())
            seconds after epoch of event
  
      Examples::
  
          from torch.utils.tensorboard import SummaryWriter
          writer = SummaryWriter()
          r = 5
          for i in range(100):
              writer.add_scalars('run_14h', {'xsinx':i*np.sin(i/r),
                                              'xcosx':i*np.cos(i/r),
                                              'tanx': np.tan(i/r)}, i)
          writer.close()
          # This call adds three values to the same scalar plot with the tag
          # 'run_14h' in TensorBoard's scalar section.
  
      Expected result:
  
      .. image:: _static/img/tensorboard/add_scalars.png
         :scale: 50 %
  
      """
      torch._C._log_api_usage_once("tensorboard.logging.add_scalars")
      walltime = time.time() if walltime is None else walltime
      fw_logdir = self._get_file_writer().get_logdir()
      for tag, scalar_value in tag_scalar_dict.items():
          fw_tag = (
              fw_logdir + "/" + main_tag.replace("/", "_") + "_" + tag
          )
          assert self.all_writers is not None
          if fw_tag in self.all_writers.keys():
              fw = self.all_writers[fw_tag]
          else:
              fw = FileWriter(
                  fw_tag,
                  self.max_queue,
                  self.flush_secs,
                  self.filename_suffix,
              )
              self.all_writers[fw_tag] = fw
          if self._check_caffe2_blob(scalar_value):
              from caffe2.python import workspace
  
              scalar_value = workspace.FetchBlob(scalar_value)
          fw.add_summary(
              scalar(main_tag, scalar_value), global_step, walltime
          )
  
imports: import os
  import time
  from typing import List, Optional, Union, TYPE_CHECKING
  import torch
  from tensorboard.compat import tf
  from tensorboard.compat.proto import event_pb2
  from tensorboard.compat.proto.event_pb2 import Event, SessionLog
  from tensorboard.plugins.projector.projector_config_pb2 import ProjectorConfig
  from tensorboard.summary.writer.event_file_writer import EventFileWriter
  from ._convert_np import make_np
  from ._embedding import get_embedding_info, make_mat, make_sprite, make_tsv, write_pbtxt
  from ._onnx_graph import load_onnx_graph
  from ._pytorch_graph import graph
  from ._utils import figure_to_image
  from .summary import audio, custom_scalars, histogram, histogram_raw, hparams, image, image_boxes, mesh, pr_curve, pr_curve_raw, scalar, tensor_proto, text, video
label_desc: Use image node_id 7 for calling the SummaryWriter obj's underlying member method code with example usage: obj.add_scalars(main_tag, tag_scalar_dict, global_step, walltime) without return types