Running Mean¶
Module Interface¶
- class torchmetrics.aggregation.RunningMean(window=5, nan_strategy='warn', **kwargs)[source]¶
Aggregate a stream of value into their mean over a running window.
Using this metric compared to MeanMetric allows for calculating metrics over a running window of values, instead of the whole history of values. This is beneficial when you want to get a better estimate of the metric during training and don’t want to wait for the whole training to finish to get epoch level estimates.
As input to
forward
andupdate
the metric accepts the following inputAs output of forward and compute the metric returns the following output
agg
(Tensor
): scalar float tensor with aggregated sum over all inputs received
- Parameters:
nan_strategy¶ (
Union
[str
,float
]) – options: -'error'
: if any nan values are encountered will give a RuntimeError -'warn'
: if any nan values are encountered will give a warning and continue -'ignore'
: all nan values are silently removed - a float: if a float is provided will impute any nan values with this valuekwargs¶ (
Any
) – Additional keyword arguments, see Advanced metric settings for more info.
- Raises:
ValueError – If
nan_strategy
is not one oferror
,warn
,ignore
or a float
Example
>>> from torch import tensor >>> from torchmetrics.aggregation import RunningMean >>> metric = RunningMean(window=3) >>> for i in range(6): ... current_val = metric(tensor([i])) ... running_val = metric.compute() ... total_val = tensor(sum(list(range(i+1)))) / (i+1) # total mean over all samples ... print(f"{current_val=}, {running_val=}, {total_val=}") current_val=tensor(0.), running_val=tensor(0.), total_val=tensor(0.) current_val=tensor(1.), running_val=tensor(0.5000), total_val=tensor(0.5000) current_val=tensor(2.), running_val=tensor(1.), total_val=tensor(1.) current_val=tensor(3.), running_val=tensor(2.), total_val=tensor(1.5000) current_val=tensor(4.), running_val=tensor(3.), total_val=tensor(2.) current_val=tensor(5.), running_val=tensor(4.), total_val=tensor(2.5000)