Computes and stores the average and current value
| 20 | |
| 21 | |
| 22 | class MovingAverageMeter(object): |
| 23 | """Computes and stores the average and current value""" |
| 24 | def __init__(self, name, fmt=':f', momentum=0.9): |
| 25 | self.name = name |
| 26 | self.fmt = fmt |
| 27 | self.momentum = momentum |
| 28 | self.reset() |
| 29 | |
| 30 | def reset(self): |
| 31 | self.val = 0 |
| 32 | self.avg = 0 |
| 33 | self.sum = 0 |
| 34 | |
| 35 | def update(self, val, n=1): |
| 36 | self.val = val |
| 37 | self.avg = self.momentum*self.avg + (1-self.momentum)*val |
| 38 | |
| 39 | def __str__(self): |
| 40 | fmtstr = '{name} {val' + self.fmt + '} ({avg' + self.fmt + '})' |
| 41 | return fmtstr.format(**self.__dict__) |
| 42 | |
| 43 | class ProgressMeter(object): |
| 44 | def __init__(self, num_batches, meters, prefix="", output_dir=None): |