Source code for lmp.util.log

"""Logging utilities."""

import os

# Typeshed for `tensorboard` is not available, we ignore type check on `tensorboard`.
import torch.utils.tensorboard  # type: ignore

import lmp.util.validate
import lmp.vars


[docs]def get_tb_logger(exp_name: str) -> torch.utils.tensorboard.SummaryWriter: """Get tensorboard logger. Create tensorboard for performance log visualization. Logs will be written to ``log/exp_name``. Parameters ---------- exp_name: str Name of the logging experiment. Returns ------- torch.utils.tensorboard.SummaryWriter Tensorboard logger instance. """ # `exp_name` validation. lmp.util.validate.raise_if_not_instance(val=exp_name, val_name='exp_name', val_type=str) lmp.util.validate.raise_if_empty_str(val=exp_name, val_name='exp_name') # `log_dir` validation. log_dir = os.path.join(lmp.vars.LOG_PATH, exp_name) lmp.util.validate.raise_if_is_file(path=log_dir) if not os.path.exists(log_dir): os.makedirs(log_dir) return torch.utils.tensorboard.SummaryWriter(log_dir=log_dir)