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 (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:

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

×

Search Docs