def update(self, hps_string: str):
if hps_string:
values = dict(pair.split('=') for pair in hps_string.split(','))
for field in attr.fields(HyperParams):
v = values.pop(field.name, None)
if v is not None:
default = field.default
assert not isinstance(default, bool)
if isinstance(default, (int, float, str)):
v = type(default)(v)
elif isinstance(default, list):
v = [type(default[0])(x) for x in v.split('-')]
setattr(self, field.name, v)
if values:
raise ValueError('Unknown hyperparams: {}'.format(values))
评论列表
文章目录