MCPcopy Create free account
hub / github.com/DragonisCV/RAM / MessageLogger

Class MessageLogger

ram/utils/logger.py:45–115  ·  view source on GitHub ↗

Message logger for printing. Args: opt (dict): Config. It contains the following keys: name (str): Exp name. logger (dict): Contains 'print_freq' (str) for logger interval. train (dict): Contains 'total_iter' (int) for total iters. use_tb_

Source from the content-addressed store, hash-verified

43
44
45class MessageLogger():
46 """Message logger for printing.
47
48 Args:
49 opt (dict): Config. It contains the following keys:
50 name (str): Exp name.
51 logger (dict): Contains 'print_freq' (str) for logger interval.
52 train (dict): Contains 'total_iter' (int) for total iters.
53 use_tb_logger (bool): Use tensorboard logger.
54 start_iter (int): Start iter. Default: 1.
55 tb_logger (obj:`tb_logger`): Tensorboard logger. Default: None.
56 """
57
58 def __init__(self, opt, start_iter=1, tb_logger=None):
59 self.exp_name = opt['name']
60 self.interval = opt['logger']['print_freq']
61 self.start_iter = start_iter
62 self.max_iters = opt['train']['total_iter']
63 self.use_tb_logger = opt['logger']['use_tb_logger']
64 self.tb_logger = tb_logger
65 self.start_time = time.time()
66 self.logger = get_root_logger()
67
68 def reset_start_time(self):
69 self.start_time = time.time()
70
71 @master_only
72 def __call__(self, log_vars):
73 """Format logging message.
74
75 Args:
76 log_vars (dict): It contains the following keys:
77 epoch (int): Epoch number.
78 iter (int): Current iter.
79 lrs (list): List for learning rates.
80
81 time (float): Iter time.
82 data_time (float): Data time for each iter.
83 """
84 # epoch, iter, learning rates
85 epoch = log_vars.pop('epoch')
86 current_iter = log_vars.pop('iter')
87 lrs = log_vars.pop('lrs')
88
89 message = (f'[{self.exp_name[:5]}..][epoch:{epoch:3d}, iter:{current_iter:8,d}, lr:(')
90 for v in lrs:
91 message += f'{v:.3e},'
92 message += ')] '
93
94 # time and estimated time
95 if 'time' in log_vars.keys():
96 iter_time = log_vars.pop('time')
97 data_time = log_vars.pop('data_time')
98
99 total_time = time.time() - self.start_time
100 time_sec_avg = total_time / (current_iter - self.start_iter + 1)
101 eta_sec = time_sec_avg * (self.max_iters - current_iter - 1)
102 eta_str = str(datetime.timedelta(seconds=int(eta_sec)))

Callers 1

train_pipelineFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected