Shortcuts

Timer#

class ignite.handlers.timing.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.

total#

total time elapsed when the Timer was running (in seconds).

Type

float

step_count#

internal counter, useful to measure average time, e.g. of processing a single batch. Incremented with the .step() method.

Type

int

running#

flag indicating if timer is measuring time.

Type

bool

Note

When using Timer(average=True) do not forget to call timer.step() every time an event occurs. See the examples below.

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

attach

Register callbacks to control the timer.

pause

Pause the current running timer.

reset

Reset the timer to zero.

resume

Resume the current running timer.

step

Increment the timer.

value

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 (Optional[Events]) – Event which should resume the timer.

  • step (Optional[Events]) – Event which should call the step method of the counter.

Returns

this timer

Return type

Timer

pause(*args)[source]#

Pause the current running timer.

Parameters

args (Any) –

Return type

None

reset(*args)[source]#

Reset the timer to zero.

Parameters

args (Any) –

Return type

Timer

resume(*args)[source]#

Resume the current running timer.

Parameters

args (Any) –

Return type

None

step(*args)[source]#

Increment the timer.

Parameters

args (Any) –

Return type

None

value()[source]#

Return the average timer value.

Return type

float