File size: 823 Bytes
1cac303
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class AverageMeter(object):
    """Computes and stores the average and current value"""
    def __init__(self, name=None):
        self.name = name
        self.reset()

    def reset(self):
        self.val = 0
        self.avg = 0
        self.sum = 0
        self.count = 0

    def update(self, val, n=1):
        self.val = val
        self.sum += val * n
        self.count += n
        self.avg = self.sum / self.count

class AverageMeters():
    def __init__(self):
        self.meters = {}

    def __len__(self):
        return len(self.meters)

    def __getitem__(self, key):
        if key not in self.meters:
            self.meters[key] = AverageMeter()
        return self.meters[key]
    
    def clear(self):
        self.meters = {}
    
    def items(self):
        return self.meters.items()