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.

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

Return type

None

Read the Docs v: v0.10.0
Versions
latest
stable
v0.10.0
v0.9.1
v0.9.0
v0.8.5
v0.8.4
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.7.4
v0.7.3
v0.7.2
v0.7.1
v0.7.0
v0.6.0
v0.5.0
v0.4.0
v0.3.0
v0.2.0
Downloads
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.