def _parts_id(hyper, parts, short=False, hashed=False): id_parts = [] for key, value in parts.items(): if value is None: continue clsname, params = value type_str = clsname.split('.')[-1] id_parts.append(type_str) # Precidence of specifications (from lowest to highest) # SF=single flag, EF=explicit flag # SF-short, SF-hash, EF-short EF-hash request_short = short is True request_hash = hashed is True if (ub.iterable(short) and key in short): request_hash = False request_short = True if (ub.iterable(hashed) and key in hashed): request_hash = True request_short = False if request_hash: param_str = util.make_idstr(params) param_str = _hash_data(param_str)[0:6] elif request_short: param_str = util.make_short_idstr(params) else: param_str = util.make_idstr(params) if param_str: id_parts.append(param_str) idstr = ','.join(id_parts) return idstr
def other_id(hyper): """ >>> from netharn.hyperparams import * >>> hyper = HyperParams(other={'augment': True, 'n_classes': 10, 'n_channels': 5}) >>> hyper.hyper_id() """ otherid = util.make_short_idstr(hyper.other, precision=4) return otherid