You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

tb_handler.py 654B

123456789101112131415161718192021
  1. from __future__ import annotations
  2. import logging
  3. from typing import TYPE_CHECKING
  4. if TYPE_CHECKING:
  5. from torch.utils.tensorboard import SummaryWriter
  6. class TensorBoardHandler(logging.Handler):
  7. """Convert each log record into a TensorBoard text summary."""
  8. def __init__(self, writer: SummaryWriter, tag: str = "logs"):
  9. super().__init__(level=logging.INFO)
  10. self.writer = writer
  11. self.tag = tag
  12. self._step = 0 # will be incremented every emit
  13. def emit(self, record: logging.LogRecord) -> None:
  14. self.writer.add_text(self.tag, self.format(record), global_step=self._step)
  15. self._step += 1