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

Keras Tuner超参数调优重复运行时无法重新执行搜索的问题求助

解决Keras Tuner重复运行直接返回旧结果的问题

这个问题我之前也碰到过,本质是Keras Tuner的状态保存机制在起作用——它默认会保留之前的搜索进度,避免重复劳动,但这也会导致我们想重新搜索时直接复用旧结果,出现INFO:tensorflow:Oracle triggered exit的日志。下面给你几个靠谱的解决方案:

方案1:每次指定新的搜索保存目录

Keras Tuner会把搜索的状态(包括已尝试的超参数、Oracle的决策记录)存在你指定的directory和project_name对应的文件夹里。每次运行时换个新的目录/项目名,就能完全从头开始搜索:

# 示例:创建Hyperband Tuner时指定新的目录和项目名
tuner = Hyperband(
    model_builder,
    objective='val_accuracy',
    max_epochs=50,
    factor=3,
    directory='tuning_run_20240520',  # 每次换个唯一的目录名
    project_name='mnist_hyper_search_v2'
)

方案2:强制覆盖已有状态

如果不想频繁换目录,在创建Tuner实例时添加overwrite=True参数,它会直接删除之前的搜索状态文件,强制启动全新的搜索流程:

tuner = Hyperband(
    model_builder,
    objective='val_accuracy',
    max_epochs=50,
    factor=3,
    directory='my_tuning_dir',
    project_name='hyperparam_search',
    overwrite=True  # 关键参数,开启后重置搜索状态
)

方案3:手动删除旧的搜索目录

如果上面两种方法都不想用,你可以找到Keras Tuner默认生成的搜索目录(默认是当前路径下的untitled_project,或者你之前指定的目录),手动删除整个文件夹,下次运行就会重新初始化搜索。不过这个方法比较繁琐,适合临时测试场景。

补充说明

Keras Tuner的这个状态保存机制其实是个实用功能——如果你的搜索任务中途中断(比如断电、程序崩溃),下次运行可以自动续上之前的进度,不用从头再来。但当我们需要完全重新调参时,就需要通过上面的方法来重置状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 16:43:10