Coverage for src/nos/trainers/average_metric.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2024-09-19 11:29 +0000

1class AverageMetric: 

2 def __init__(self, name: str, fmt: str = ":f"): 

3 self.name = name 

4 self.fmt = fmt 

5 self.val = 0.0 

6 self.n_items = 0 

7 self.avg = 0.0 

8 

9 def __call__(self): 

10 return self.avg 

11 

12 def reset(self): 

13 self.val = 0.0 

14 self.n_items = 0 

15 self.avg = 0.0 

16 

17 def update(self, val: float, n: int = 1): 

18 self.n_items += n 

19 self.val += val 

20 

21 self.avg = self.val / self.n_items 

22 

23 def __str__(self): 

24 return f"{self.name}: {self.avg: {self.fmt}}" 

25 

26 def to_dict(self): 

27 return {"name": self.name, "val": self.avg}