File size: 1,334 Bytes
25986db | 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 43 44 | from lib.utils import TensorList
import random
class TrackerParams:
"""Class for tracker parameters."""
def set_default_values(self, default_vals: dict):
for name, val in default_vals.items():
if not hasattr(self, name):
setattr(self, name, val)
def get(self, name: str, *default):
"""Get a parameter value with the given name. If it does not exists, it return the default value given as a
second argument or returns an error if no default value is given."""
if len(default) > 1:
raise ValueError('Can only give one default value.')
if not default:
return getattr(self, name)
return getattr(self, name, default[0])
def has(self, name: str):
"""Check if there exist a parameter with the given name."""
return hasattr(self, name)
class FeatureParams:
"""Class for feature specific parameters"""
def __init__(self, *args, **kwargs):
if len(args) > 0:
raise ValueError
for name, val in kwargs.items():
if isinstance(val, list):
setattr(self, name, TensorList(val))
else:
setattr(self, name, val)
def Choice(*args):
"""Can be used to sample random parameter values."""
return random.choice(args)
|