When I tried calculating the time taken to complete a single epoch via Timer, the handlers attached to trainer before Timer were executed first, and thus their time also got recorded by the Timer too for a single epoch. Therefore the true time taken for epoch completion, provided by trainer.state.times, is less than what Timer calculated. This can be misleading. More clarification on how this actually works in the docs would be appreciated. Or the Timer's functionality can be enhanced to step before all other handlers attached to an event could also be helpful. Notebook to quickly verify this here.
When I tried calculating the time taken to complete a single epoch via
Timer, the handlers attached totrainerbeforeTimerwere executed first, and thus their time also got recorded by theTimertoo for a single epoch. Therefore the true time taken for epoch completion, provided bytrainer.state.times, is less than whatTimercalculated. This can be misleading. More clarification on how this actually works in the docs would be appreciated. Or theTimer's functionality can be enhanced tostepbefore all other handlers attached to an event could also be helpful. Notebook to quickly verify this here.