meansquaredlogerror
Metric
MeanSquaredLogErrorfromtorchmetrics(torchmetrics.MeanSquaredLogError)
When to invoke this skill
The user has predictions + ground truth and asks to evaluate with MeanSquaredLogError, or
mentions torchmetrics.MeanSquaredLogError directly, or wants the standard torchmetrics implementation.
Reference signature
from torchmetrics import MeanSquaredLogError
# MeanSquaredLogError(**kwargs: Any) -> None
Library docstring
Compute `mean squared logarithmic error`_ (MSLE).
.. math:: \text{MSLE} = \frac{1}{N}\sum_i^N (\log_e(1 + y_i) - \log_e(1 + \hat{y_i}))^2
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_squared_log_error`` (:class:`~torch.Tensor`): A tensor with the mean squared log error
Args:
kwargs: Additional keyword arguments, see :ref:`Metric kwargs` for more info.
Example:
>>> from torch import tensor
>>> from torchmetrics.regression import MeanSquaredLogError
>>> target = tensor([2.5, 5, 4, 8])
>>> preds = tensor([3, 5, 2.5, 7])
>>> mean_squared_log_error = MeanSquaredLogError()
>>> mean_squared_log_error(preds, target)
tensor(0.0397)
.. attention::
Half precision is only support on GPU for this metric.
Quick recipe
import torchmetrics as _m
score = _m.MeanSquaredLogError(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).