logger¶
- class trojanzoo.utils.logger.SmoothedValue(name='', window_size=None, fmt='{global_avg:.3f}')[source]¶
Track a series of values and provide access to smoothed values over a window or the global series average.
- Parameters:
- Variables:
name (str) – Name string.
fmt (str) – The string pattern.
deque (deque) – The unique data series.
count (int) – The amount of data.
total (float) – The sum of all data.
median (float) – The median of
deque
.avg (float) – The avg of
deque
.global_avg (float) –
max (float) – The max of
deque
.min (float) – The min of
deque
.last_value (float) – The last value of
deque
.
- reset()[source]¶
Reset
deque
,count
andtotal
to be empty.- Returns:
SmoothedValue – return
self
for stream usage.
- class trojanzoo.utils.logger.MetricLogger(delimiter='', meter_length=20, tqdm=None, indent=0, **kwargs)[source]¶
-
- Parameters:
delimiter (str) – The delimiter to join different meter strings. Defaults to
''
.meter_length (int) – The minimum length for each meter. Defaults to
20
.tqdm (bool) – Whether to use tqdm to show iteration information. Defaults to
env['tqdm']
.indent (int) – The space indent for the entire string. Defaults to
0
.
- Variables:
meters (dict[str, SmoothedValue]) – The meter dict.
iter_time (SmoothedValue) – Iteration time meter.
data_time (SmoothedValue) – Data loading time meter.
memory (SmoothedValue) – Memory usage meter.
- create_meters(**kwargs)[source]¶
Create meters with specific
fmt
inself.meters
.self.meters[meter_name] = SmoothedValue(fmt=fmt)
- Parameters:
**kwargs –
(meter_name: fmt)
- Returns:
MetricLogger – return
self
for stream usage.
- get_str(cut_too_long=True, strip=True, **kwargs)[source]¶
Generate formatted string based on keyword arguments.
key: value
with max length to beself.meter_length
. The key string is green whenenv['color'] == True
.
- log_every(iterable, header='', tqdm=None, tqdm_header='Iter', indent=None, verbose=None)[source]¶
Wrap an
collections.abc.Iterable
with formatted outputs.Middle Output:
{tqdm_header}: [ current / total ] str(self) {memory} {iter_time} {data_time} {time}<{remaining}
Final Output
{header} str(self) {memory} {iter_time} {data_time} {total_time}
- Parameters:
iterable (Iterable) – The raw iterator.
header (str) – The header string for final output. Defaults to
''
.tqdm (bool) – Whether to use tqdm to show iteration information. Defaults to
self.tqdm
.tqdm_header (str) – The header string for middle output. Defaults to
'Iter'
.indent (int) – The space indent for the entire string. if
None
, useself.indent
. Defaults toNone
.verbose (int) – The verbose level of output information. Defaults to
env[verbose]
- Example:
See also
- reset()[source]¶
Reset meter in
self.meters
by callingSmoothedValue.reset()
.- Returns:
MetricLogger – return
self
for stream usage.
- update(n=1, **kwargs)[source]¶
Update values to
self.meters
by callingSmoothedValue.update()
.self.meters[meter_name].update(float(value), n=n)
- Parameters:
n (int) – the number of data with same value.
**kwargs –
{meter_name: value}
.
- Returns:
MetricLogger – return
self
for stream usage.
- update_list(**kwargs)[source]¶
Update values to
self.meters
by callingSmoothedValue.update_list()
.self.meters[meter_name].update_list(value_list)
- Parameters:
**kwargs –
{meter_name: value_list}
.- Returns:
MetricLogger – return
self
for stream usage.
- class trojanzoo.utils.logger.AverageMeter(name, fmt=':f')[source]¶
Computes and stores the average and current value.
Note
It is recommended to use
SmoothedValue
instead.