docstr: Adds a tag to the experiment.
  Tags are metadata for the exp.
  
  >> e.tag({"model": "Convnet A"})
  
  :param key:
  :param val:
  :return:
docstr_tok: ["Adds","a","tag","to","the","experiment",".","Tags","are","metadata","for","the","exp",".",">",">","e.tag","(","{","``","model","''",":","``","Convnet","A","''","}",")",":","param","key",":",":","param","val",":",":","return",":"]
code: def tag(self, tag_dict):
      """
      Adds a tag to the experiment.
      Tags are metadata for the exp.
  
      >> e.tag({"model": "Convnet A"})
  
      :param key:
      :param val:
      :return:
      """
      if self.debug or self.rank > 0:
          return
  
      # parse tags
      for k, v in tag_dict.items():
          self.tags[k] = v
  
      # save if needed
      if self.autosave == True:
          self.save()
  
imports: import contextlib
  import json
  import os
  import shutil
  from datetime import datetime
  import numpy
  import pandas
  from imageio import imwrite
  from tensorboard.compat.proto.event_pb2 import Event
  from tensorboard.compat.proto.event_pb2 import SessionLog
  from torch.utils.tensorboard import SummaryWriter, FileWriter
label_desc: Use image node_id 11 for calling the Experiment obj's underlying member method code with example usage: obj.tag(tag_dict) without return types