class_docstr: Simple logger that buffers data in-memory.
  
  Example:
          from torchtnt.utils.loggers import InMemoryLogger
          logger = InMemoryLogger()
          logger.log("accuracy", 23.56, 10)
          logger.close()
class_docstr_tok: ["Simple","logger","that","buffers","data","in-memory",".","Example",":","from","torchtnt.utils.loggers","import","InMemoryLogger","logger","=","InMemoryLogger","(",")","logger.log","(","``","accuracy","''",",","23.56",",","10",")","logger.close","(",")"]
docstr: Add multiple scalar values.
  
  Args:
      payload (dict): dictionary of tag name and scalar value
      step (int): step value to record
docstr_tok: ["Add","multiple","scalar","values",".","Args",":","payload","(","dict",")",":","dictionary","of","tag","name","and","scalar","value","step","(","int",")",":","step","value","to","record"]
code: def log_dict(self, payload: Mapping[str, Scalar], step: int) -> None:
      """Add multiple scalar values.
  
      Args:
          payload (dict): dictionary of tag name and scalar value
          step (int): step value to record
      """
  
      for k, v in payload.items():
          self.log(k, v, step)
  
file_path: tnt/torchtnt/utils/loggers/in_memory.py
imports: import atexit
  import logging
  from collections import OrderedDict
  from time import monotonic
  from typing import Dict, Mapping
  from torchtnt.utils.loggers.logger import MetricLogger, Scalar
  from torchtnt.utils.loggers.utils import scalar_to_float
label_desc: Use image node_id 3 for calling the InMemoryLogger obj's underlying member method code with example usage: obj.log_dict(payload, step) without return types