MCPcopy Index your code
hub / github.com/tensorpack/tensorpack / CallbackTimeLogger

Class CallbackTimeLogger

tensorpack/callbacks/group.py:18–44  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16
17
18class CallbackTimeLogger(object):
19 def __init__(self):
20 self.times = []
21 self.tot = 0
22
23 def add(self, name, time):
24 self.tot += time
25 self.times.append((name, time))
26
27 @contextmanager
28 def timed_callback(self, name):
29 s = timer()
30 yield
31 self.add(name, timer() - s)
32
33 def log(self):
34
35 """ log the time of some heavy callbacks """
36 if self.tot < 2:
37 return
38 msgs = []
39 for name, t in self.times:
40 if t / self.tot > 0.3 and t > 1:
41 msgs.append(name + ": " + humanize_time_delta(t))
42 logger.info(
43 "Callbacks took {:.3f} sec in total. {}".format(
44 self.tot, '; '.join(msgs)))
45
46
47class Callbacks(Callback):

Callers 1

_trigger_epochMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected