meanabsoluteerror
Metric
MeanAbsoluteErrorfromtorchmetrics(torchmetrics.MeanAbsoluteError)
When to invoke this skill
The user has predictions + ground truth and asks to evaluate with MeanAbsoluteError, or
mentions torchmetrics.MeanAbsoluteError directly, or wants the standard torchmetrics implementation.
Reference signature
from torchmetrics import MeanAbsoluteError
# MeanAbsoluteError(num_outputs: int = 1, **kwargs: Any) -> None
Library docstring
`Compute Mean Absolute Error`_ (MAE).
.. math:: \text{MAE} = \frac{1}{N}\sum_i^N | y_i - \hat{y_i} |
Where :math:`y` is a tensor of target values, and :math:`\hat{y}` is a tensor of predictions.
As input to ``forward`` and ``update`` the metric accepts the following input:
- ``preds`` (:class:`~torch.Tensor`): Predictions from model
- ``target`` (:class:`~torch.Tensor`): Ground truth values
As output of ``forward`` and ``compute`` the metric returns the following output:
- ``mean_absolute_error`` (:class:`~torch.Tensor`): A tensor with the mean absolute error over the state
Args:
num_outputs: Number of outputs in multioutput setting
kwargs: Additional keyword arguments, see :ref:`Metric kwargs` for more info.
Example:
>>> from torch import tensor
>>> from torchmetrics.regression import MeanAbsoluteError
>>> target = tensor([3.0, -0.5, 2.0, 7.0])
>>> preds = tensor([2.5, 0.0, 2.0, 8.0])
>>> mean_absolute_error = MeanAbsoluteError()
>>> mean_absolute_error(preds, target)
tensor(0.5000)
Example::
Multioutput mse computation:
>>> from torch import tensor
>>> from torchmetrics.regression import MeanAbsoluteError
>>> target = tensor([[0.0, 0.0, 0.0], [0.0, 0.0, 0.0]])
>>> preds = tensor([[1.0, 2.0, 3.0], [1.0, 2.0, 3.0]])
>>> mean_absolute_error = MeanAbsoluteError(num_outputs=3)
>>> mean_absolute_error(preds, target)
tensor([1., 2., 3.])
Quick recipe
import torchmetrics as _m
score = _m.MeanAbsoluteError(y_true, y_pred)
Don'ts
- Don't reimplement when the library version handles edge cases (NaN, ties, empty inputs) better than a hand-rolled formula.
- Always check the library version's argument order — sklearn is
(y_true, y_pred)while torchmetrics is(preds, target).