code: def test_log_dict(self: TensorBoardLoggerTest) -> None:
      with tempfile.TemporaryDirectory() as log_dir:
          logger = TensorBoardLogger(path=log_dir)
          metric_dict = {
              f"log_dict_{i}": float(i) ** 2 for i in range(5)
          }
          logger.log_dict(metric_dict, 1)
          logger.close()
  
          acc = EventAccumulator(log_dir)
          acc.Reload()
          for i in range(5):
              tensor_tag = acc.Tensors(f"log_dict_{i}")[0]
              self.assertAlmostEqual(
                  tensor_tag.tensor_proto.float_val[0], float(i) ** 2
              )
              self.assertEqual(tensor_tag.step, 1)
  
file_path: tnt/tests/utils/loggers/test_tensorboard.py
imports: from __future__ import annotations
  import os
  import tempfile
  import unittest
  from unittest.mock import Mock, patch
  import torch.distributed.launcher
  from tensorboard.backend.event_processing.event_accumulator import EventAccumulator
  from torch import distributed
  from torchtnt.utils.loggers.tensorboard import TensorBoardLogger
  from torchtnt.utils.test_utils import get_pet_launch_config
label_desc: Use image node_id 2 for calling the TensorBoardLoggerTest obj's underlying member method code with example usage: obj.test_log_dict() without return types