Shortcuts

HistoryBuffer

class mmengine.logging.HistoryBuffer(log_history=[], count_history=[], max_length=1000000)[source]

Unified storage format for different log types.

HistoryBuffer records the history of log for further statistics.

Examples

>>> history_buffer = HistoryBuffer()
>>> # Update history_buffer.
>>> history_buffer.update(1)
>>> history_buffer.update(2)
>>> history_buffer.min()  # minimum of (1, 2)
1
>>> history_buffer.max()  # maximum of (1, 2)
2
>>> history_buffer.mean()  # mean of (1, 2)
1.5
>>> history_buffer.statistics('mean')  # access method by string.
1.5
Parameters
  • log_history (Sequence) – History logs. Defaults to [].

  • count_history (Sequence) – Counts of history logs. Defaults to [].

  • max_length (int) – The max length of history logs. Defaults to 1000000.

current()[source]

Return the recently updated values in log histories.

Returns

Recently updated values in log histories.

Return type

np.ndarray

property data: Tuple[numpy.ndarray, numpy.ndarray]

Get the _log_history and _count_history.

Returns

History logs and the counts of the history logs.

Return type

Tuple[np.ndarray, np.ndarray]

max(window_size=None)[source]

Return the maximum value of the latest window_size values in log histories.

If window_size is None or window_size > len(self._log_history), return the global maximum value of history logs.

Parameters

window_size (int, optional) – Size of statistics window.

Returns

The maximum value within the window.

Return type

np.ndarray

mean(window_size=None)[source]

Return the mean of the latest window_size values in log histories.

If window_size is None or window_size > len(self._log_history), return the global mean value of history logs.

Parameters

window_size (int, optional) – Size of statistics window.

Returns

Mean value within the window.

Return type

np.ndarray

min(window_size=None)[source]

Return the minimum value of the latest window_size values in log histories.

If window_size is None or window_size > len(self._log_history), return the global minimum value of history logs.

Parameters

window_size (int, optional) – Size of statistics window.

Returns

The minimum value within the window.

Return type

np.ndarray

classmethod register_statistics(method)[source]

Register custom statistics method to _statistics_methods.

The registered method can be called by history_buffer.statistics with corresponding method name and arguments.

Examples

>>> @HistoryBuffer.register_statistics
>>> def weighted_mean(self, window_size, weight):
>>>     assert len(weight) == window_size
>>>     return (self._log_history[-window_size:] *
>>>             np.array(weight)).sum() /             >>>             self._count_history[-window_size:]
>>> log_buffer = HistoryBuffer([1, 2], [1, 1])
>>> log_buffer.statistics('weighted_mean', 2, [2, 1])
2
Parameters

method (Callable) – Custom statistics method.

Returns

Original custom statistics method.

Return type

Callable

statistics(method_name, *arg, **kwargs)[source]

Access statistics method by name.

Parameters

method_name (str) – Name of method.

Returns

Depends on corresponding method.

Return type

Any

update(log_val, count=1)[source]

update the log history.

If the length of the buffer exceeds self._max_length, the oldest element will be removed from the buffer.

Parameters
  • log_val (int or float) – The value of log.

  • count (int) – The accumulation times of log, defaults to 1.

  • will be used in smooth statistics. (count) –

Return type

None

Read the Docs v: latest
Versions
latest
stable
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.