Keras Tuner调用results_summary不显示对应trial目录问题问询
解决方案
方法1:搜索完成后直接遍历Tuner对象内置的trial信息
你可以直接访问tuner.oracle.trials属性获取所有试验的完整信息,其中trial_id就是对应目录名的后缀,直接打印即可把超参数、得分和目录一一对应,示例代码:
# 获取所有试验对象,按得分排序(和results_summary输出顺序完全一致) trials = tuner.oracle.get_best_trials(num_trials=10) # 遍历输出对应信息 for i, trial in enumerate(trials): print(f"第{i+1}名试验") print(f"对应目录: trial_{trial.trial_id}") print("超参数:") for k, v in trial.hyperparameters.values.items(): print(f" {k}: {v}") print(f"得分: {trial.score}\n")
方法2:从本地存储的目录直接读取匹配
如果tuner对象已经被释放,你也可以直接遍历保存的my_dir目录,读取每个trial下的trial.json文件匹配信息,示例代码:
import os import json # 注意默认项目名是untitled_project,如果你初始化时指定了project_name参数请替换为自定义名称 base_dir = files_dir + 'my_dir/untitled_project' for trial_dir in os.listdir(base_dir): if not trial_dir.startswith('trial_'): continue json_path = os.path.join(base_dir, trial_dir, 'trial.json') with open(json_path, 'r', encoding='utf-8') as f: trial_info = json.load(f) print(f"目录名: {trial_dir}") print("超参数:") for k, v in trial_info['hyperparameters']['values'].items(): print(f" {k}: {v}") print(f"得分: {trial_info['score']}\n")
内容的提问来源于stack exchange,提问作者RandomFellow
相关产品推荐
相关产品推荐

