Source code for utils.tracker.base
"""
This module contains base Trackers
"""
import abc
import numpy as np
[docs]class Tracker(abc.ABC):
"""Base Tracker
Warning: This class should not be used directly.
Use derived classes instead.
"""
@abc.abstractmethod
def __init__(self):
self.tracked_value = 0
self.N = 0
[docs] @abc.abstractmethod
def update(self, *args, **kwargs) -> "Tracker":
"""Updates the tracker with a new value or values."""
raise NotImplementedError
def __repr__(self):
return f"{np.round(self.tracked_value, 2)}"
[docs] def __call__(self, *args, **kwargs):
"""Returns the current tracked value."""
return self.tracked_value
[docs] def get_normalized(self):
"""Default normalization which only returns the current tracked value."""
return self.get()