Skip to content

dashboard

log.dashboard

Dashboard

Dashboard(logdir: Optional[str] = None, log_image: bool = False)

Bases: Registerable

Source code in SaigeToolkit/log/dashboard.py
def __init__(self, logdir: Optional[str] = None, log_image: bool = False):
    self.logdir = logdir
    self._enabled = self.logdir is not None
    self.log_image = log_image

registry instance-attribute

registry: Dict[str, Dashboard]

logdir instance-attribute

logdir = logdir

_enabled instance-attribute

_enabled = logdir is not None

log_image instance-attribute

log_image = log_image

enabled property

enabled: bool

log abstractmethod

log(data: Dict, step: int, prefix: str) -> None
Source code in SaigeToolkit/log/dashboard.py
@abstractmethod
def log(self, data: Dict, step: int, prefix: str) -> None:
    pass

Tensorboard

Tensorboard(logdir: Optional[str] = None, log_image: bool = False)

Bases: Dashboard

Source code in SaigeToolkit/log/dashboard.py
def __init__(self, logdir: Optional[str] = None, log_image: bool = False):
    super().__init__(logdir, log_image)
    self.tensorboard_writer = SummaryWriter(log_dir=self.logdir) if self.enabled else None

tensorboard_writer instance-attribute

tensorboard_writer = SummaryWriter(log_dir=logdir) if enabled else None

log

log(data: dict, step: int, prefix: str = 'train') -> None
Source code in SaigeToolkit/log/dashboard.py
def log(self, data: dict, step: int, prefix: str = "train") -> None:
    if not self.enabled:
        return

    for key, value in data.items():
        if isinstance(value, numbers.Number):
            self.tensorboard_writer.add_scalar(f"{prefix}/{key}", value, step)
        elif isinstance(value, torch.Tensor):
            if not self.log_image:
                continue
            if len(value.shape) == 4:  # batched images
                self.tensorboard_writer.add_images(f"{prefix}/{key}", value, step)
        else:
            pass

build_dashboard

build_dashboard(_target_: str = 'Tensorboard', **kwargs) -> Dashboard
Source code in SaigeToolkit/log/dashboard.py
def build_dashboard(_target_: str = "Tensorboard", **kwargs) -> Dashboard:
    return Dashboard.registry[_target_](**kwargs)