Showing
1 changed file
with
38 additions
and
0 deletions
2DCNN/lib/utils/logging.py
0 → 100644
| 1 | +""" logging related functionality """ | ||
| 2 | + | ||
| 3 | + | ||
| 4 | +import logging | ||
| 5 | + | ||
| 6 | +from torch.utils.tensorboard import SummaryWriter | ||
| 7 | + | ||
| 8 | +logger = logging.getLogger() | ||
| 9 | + | ||
| 10 | + | ||
| 11 | +def print_verbose(string, verbose): | ||
| 12 | + if verbose: | ||
| 13 | + print(string) | ||
| 14 | + | ||
| 15 | + | ||
| 16 | +def loss_logger_helper( | ||
| 17 | + loss, aux_loss, writer: SummaryWriter, step: int, epoch: int, log_every: int, | ||
| 18 | + string: str = "train", force_print: bool = False, new_line: bool = False | ||
| 19 | +): | ||
| 20 | + # write to tensorboard at every step but only print at log step or when force_print is passed | ||
| 21 | + writer.add_scalar(f"{string}/loss", loss, step) | ||
| 22 | + for k, v in aux_loss.items(): | ||
| 23 | + writer.add_scalar(f"{string}/" + k, v, step) | ||
| 24 | + | ||
| 25 | + if step % log_every == 0 or force_print: | ||
| 26 | + logger.info(f"{string}/loss: ({step}/{epoch}) {loss}") | ||
| 27 | + | ||
| 28 | + | ||
| 29 | + | ||
| 30 | + if force_print: | ||
| 31 | + if new_line: | ||
| 32 | + for k, v in aux_loss.items(): | ||
| 33 | + logger.info(f"{string}/{k}:{v} ") | ||
| 34 | + else: | ||
| 35 | + str_ = "" | ||
| 36 | + for k, v in aux_loss.items(): | ||
| 37 | + str_ += f"{string}/{k}:{v} " | ||
| 38 | + logger.info(f"{str_}") |
-
Please register or login to post a comment