| 18 | |
| 19 | |
| 20 | class FlopCounter: |
| 21 | def __init__(self): |
| 22 | self.ops = [] |
| 23 | |
| 24 | def op(self, op, *args, **kwargs): |
| 25 | self.ops.append((op, args, kwargs)) |
| 26 | |
| 27 | @property |
| 28 | def flops(self): |
| 29 | flops = 0 |
| 30 | for op, args, kwargs in self.ops: |
| 31 | flops += op(*args, **kwargs) |
| 32 | return flops |
| 33 | |
| 34 | |
| 35 | def op(op, *args, **kwargs): |