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[ndarray, 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.4
Versions
latest
stable
v0.10.4
v0.10.3
v0.10.2
v0.10.1
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.