Timer#
- class ignite.handlers.Timer(average=False)[source]#
Timer object can be used to measure (average) time between events.
- Parameters:
average (bool) – if True, then when
.value()method is called, the returned value will be equal to total time measured, divided by the value of internal counter.
- step_count#
internal counter, useful to measure average time, e.g. of processing a single batch. Incremented with the
.step()method.- Type:
Note
When using
Timer(average=True)do not forget to calltimer.step()every time an event occurs. See the examples below.Note
If
Timeris attached to measure single epoch time, it can also record the time of all handlers attached prior to it. To obtain the actual time taken for the epoch completion, handlers have to be rearranged.Examples
Measuring total time of the epoch:
from ignite.handlers import Timer import time work = lambda : time.sleep(0.1) idle = lambda : time.sleep(0.1) t = Timer(average=False) for _ in range(10): work() idle() t.value() # 2.003073937026784
Measuring average time of the epoch:
t = Timer(average=True) for _ in range(10): work() idle() t.step() t.value() # 0.2003182829997968
Measuring average time it takes to execute a single
work()call:t = Timer(average=True) for _ in range(10): t.resume() work() t.pause() idle() t.step() t.value() # 0.10016545779653825
Using the Timer to measure average time it takes to process a single batch of examples:
from ignite.engine import Engine, Events from ignite.handlers import Timer trainer = Engine(training_update_function) timer = Timer(average=True) timer.attach( trainer, start=Events.STARTED, resume=Events.ITERATION_STARTED, pause=Events.ITERATION_COMPLETED, step=Events.ITERATION_COMPLETED )
Methods
Register callbacks to control the timer.
Pause the current running timer.
Reset the timer to zero.
Resume the current running timer.
Increment the timer.
Return the average timer value.
- attach(engine, start=Events.STARTED, pause=Events.COMPLETED, resume=None, step=None)[source]#
Register callbacks to control the timer.
- Parameters:
engine (Engine) – Engine that this timer will be attached to.
start (Events) – Event which should start (reset) the timer.
pause (Events) – Event which should pause the timer.
resume (Events | None) – Event which should resume the timer.
step (Events | None) – Event which should call the step method of the counter.
- Returns:
this timer
- Return type: