File size: 1,285 Bytes
18103a9 d2b2b68 18103a9 d2b2b68 18103a9 d2b2b68 18103a9 d2b2b68 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import cv2 as cv
from ..timer import Timer
class BaseMetric:
def __init__(self, **kwargs):
self._warmup = kwargs.pop('warmup', 3)
self._repeat = kwargs.pop('repeat', 10)
self._timer = Timer()
def _calcMedian(self, records):
''' Return the median of records
'''
l = len(records)
mid = int(l / 2)
if l % 2 == 0:
return (records[mid] + records[mid - 1]) / 2
else:
return records[mid]
def _calcMean(self, records, drop_largest=1):
''' Return the mean of records after dropping drop_largest
'''
l = len(records)
if l <= drop_largest:
print('len(records)({}) <= drop_largest({}), stop dropping.'.format(l, drop_largest))
records_sorted = sorted(records, reverse=True)
return sum(records_sorted[drop_largest:]) / (l - drop_largest)
def _calcMin(self, records):
return min(records)
def getPerfStats(self, records):
mean = self._calcMean(records, int(len(records) / 10))
median = self._calcMedian(records)
minimum = self._calcMin(records)
return [mean, median, minimum]
def forward(self, model, *args, **kwargs):
raise NotImplementedError('Not implemented')
|