5**-1.6 # 0.07614615754863513 type(tmp2), dir(tmp2) # NOTE: 试验space到实际数值的映射, 可能和Apply没关系 hp_assignment = { k: v[0] for k, v in trials_lgb.trials[0]['misc']['vals'].items() } hp_assignment = {k: v[0] for k, v in trials_lgb.vals.items()} # 这句和上面那句等价,这句更简洁 space_eval(space_lgb, hp_assignment) trials_lgb.trials[0]['result'] # {'loss': -0.8737864077669903, 'status': 'ok'} # 返回k个最好的模型的参数dict组成的一个list trials_lgb.topk_trials(k=2) # return_score=True就返回2个list组成的tuple trials_lgb.topk_trials(2, return_score=True, ordered=True) type(trials_lgb.topk_trials(2, return_score=True, ordered=True)[0][0]) # 这个类型就是个dict # Trials().trial_attachments的作用是,根据trial的参数字典解析出相应的model路径 trials_lgb.trial_attachments( trials_lgb.topk_trials(2, return_score=True, ordered=True)[0][0])["model"].decode() # %% #返回topk的模型 select_models = lambda trials, k: [ (trials.trial_attachments(t)["model"].decode(), c) for t, c in zip(*trials.topk_trials(k, return_score=True, ordered=True)) ]