iter_timer_hook.py 731 B

12345678910111213141516171819202122232425
  1. # Copyright (c) Alibaba, Inc. and its affiliates.
  2. import time
  3. from modelscope.metainfo import Hooks
  4. from modelscope.utils.constant import LogKeys
  5. from .builder import HOOKS
  6. from .hook import Hook
  7. from .priority import Priority
  8. @HOOKS.register_module(module_name=Hooks.IterTimerHook)
  9. class IterTimerHook(Hook):
  10. PRIORITY = Priority.LOW
  11. def before_epoch(self, trainer):
  12. self.start_time = time.time()
  13. def before_iter(self, trainer):
  14. trainer.log_buffer.update(
  15. {LogKeys.DATA_LOAD_TIME: time.time() - self.start_time})
  16. def after_iter(self, trainer):
  17. trainer.log_buffer.update(
  18. {LogKeys.ITER_TIME: time.time() - self.start_time})
  19. self.start_time = time.time()