You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Keras Autotuner运行结束后输出最优值及相关统计信息?

解决Keras Autotuner调参完成后输出最优值及统计信息的方法

核心实现步骤

调参完成后,可通过Keras Autotuner内置API提取最优结果,并自定义输出格式。以下是具体代码示例:

1. 运行调参并输出内置汇总

import keras_tuner as kt

# 假设已定义模型构建函数build_model(tuner)及训练/验证数据
tuner = kt.Hyperband(
    build_model,
    objective="val_accuracy",
    max_epochs=20,
    factor=3,
    directory="my_tuning_dir",
    project_name="dense_layer_tuning"
)

# 执行调参
tuner.search(x_train, y_train, epochs=10, validation_data=(x_val, y_val))

# 输出所有调参试验的汇总信息(内置方法,直接展示统计结果)
print("=== 调参试验汇总 ===")
tuner.results_summary(num_trials=10)  # 指定显示前10个排名靠前的试验

2. 自定义输出“目前最优值”及详细参数

# 获取排名第一的最优超参数组合
best_hps = tuner.get_best_hyperparameters(num_trials=1)[0]

# 获取对应的最优模型并评估验证集指标
best_model = tuner.get_best_models(num_trials=1)[0]
val_loss, val_acc = best_model.evaluate(x_val, y_val, verbose=0)

# 自定义输出最优值提示
print("\n=== 目前最优值 ===")
print(f"最优验证准确率: {val_acc:.4f}")
# 根据你调优的Dense层参数提取对应值,比如单元数、激活函数等
print(f"最优Dense层单元数: {best_hps.get('units')}")
print(f"最优Dense层激活函数: {best_hps.get('activation')}")
# 若调优了Dropout等其他参数,可同样提取
# print(f"最优Dropout率: {best_hps.get('dropout_rate')}")

3. 输出所有试验的详细统计数据

如果需要查看所有试验的完整数据,可遍历调参器的试验记录:

print("\n=== 所有试验详细数据 ===")
# 获取所有试验(num_trials=-1表示全部)
all_trials = tuner.oracle.get_best_trials(num_trials=-1)
for idx, trial in enumerate(all_trials, start=1):
    print(f"\n试验 {idx} (排名: {trial.rank})")
    print(f"验证准确率: {trial.score:.4f}")
    print("超参数配置:")
    for hp_name, hp_val in trial.hyperparameters.values.items():
        print(f"  {hp_name}: {hp_val}")

关键说明

  • tuner.results_summary():Keras Autotuner内置的汇总方法,自动展示试验排名、超参数、指标值等统计信息,无需手动统计。
  • get_best_hyperparameters():返回指定数量的最优超参数对象,可直接提取每个超参数的具体取值。
  • get_best_models():返回训练好的最优模型,可直接用于评估或部署。

内容的提问来源于stack exchange,提问作者saransh rakshak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 00:52:52