mirror of
https://github.com/modelscope/modelscope.git
synced 2026-07-10 12:33:28 +02:00
Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/11249980 * add tinynas-detection trainer, evaluater and dataloader. * add timmer and general torch dist tools. * replace loguru with modelscope standard logger. * merge duplicate tinynas-detection model files. * add compatibility of json config files.
51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
# Copyright © Alibaba, Inc. and its affiliates.
|
|
|
|
import datetime
|
|
import time
|
|
|
|
|
|
class Timer(object):
|
|
|
|
def __init__(self):
|
|
"""Recorder of time consumption.
|
|
|
|
"""
|
|
self.reset()
|
|
|
|
@property
|
|
def average_time(self):
|
|
return self.total_time / self.calls if self.calls > 0 else 0.0
|
|
|
|
def tic(self):
|
|
# using time.time instead of time.clock because time time.clock
|
|
# does not normalize for multithreading
|
|
self.start_time = time.time()
|
|
|
|
def toc(self, average=True):
|
|
self.add(time.time() - self.start_time)
|
|
if average:
|
|
return self.average_time
|
|
else:
|
|
return self.diff
|
|
|
|
def add(self, time_diff):
|
|
self.diff = time_diff
|
|
self.total_time += self.diff
|
|
self.calls += 1
|
|
|
|
def reset(self):
|
|
self.total_time = 0.0
|
|
self.calls = 0
|
|
self.start_time = 0.0
|
|
self.diff = 0.0
|
|
|
|
def avg_time_str(self):
|
|
time_str = str(datetime.timedelta(seconds=self.average_time))
|
|
return time_str
|
|
|
|
|
|
def get_time_str(time_diff):
|
|
time_str = str(datetime.timedelta(seconds=time_diff))
|
|
return time_str
|