SPATZ/spatz/metrics/max_dev.py

21 lines
629 B
Python

from numpy.typing import ArrayLike
from spatz.metrics import Metric
class MaxAbsDeviation(Metric):
def __init__(self) -> None:
"""A metric tracking the maximum absolute deviation from the true value."""
super().__init__()
def _update(self, x: ArrayLike, y: ArrayLike):
self._score = max(self._score, abs(x - y))
class MaxRelDeviation(Metric):
def __init__(self) -> None:
"""A metric tracking the maximum deviation from the true value in percent."""
super().__init__()
def _update(self, x: ArrayLike, y: ArrayLike):
self._score = max(self._score, (x - y) / y)