5

当我运行 Keras Tuner 搜索时,代码运行了一些时期,然后说:'INFO:tensorflow:Oracle 触发退出'。

这是什么意思?我仍然能够提取最佳超参数。是因为早停吗?我已经尝试过随机搜索和超频带。

4

8 回答 8

2

可能的原因是,目录已经创建。

尝试以下步骤:

  1. 更改目录名称。
  2. 重新启动内核。
  3. 重新运行所有代码。
于 2021-04-14T14:11:24.443 回答
1

我通过在 Tuner 中设置这两个条件解决了这个问题:

  • overwrite = False
  • Oracle 中的值max_trials大于我使用的值,直到发生错误“Oracle 触发退出”(我正在使用kerastuner.oracles.BayesianOptimizationOracle)
于 2021-06-14T13:26:19.350 回答
1

尝试directory在定义调谐器的位置添加参数,或者如果您已经添加了directoryarg,请尝试更改该 arg 的值。RandomSearch请看以下调谐器示例中的最后一行:

tuner = RandomSearch(
    tune_rnn_model,
    objective='val_accuracy',
    seed=SEED,
    max_trials=MAX_TRIALS,
    directory='**change-this-value**',
)
于 2020-06-14T10:19:36.353 回答
0

我相信这是因为您正在处理一个小型数据集,这会在执行随机搜索时导致大量冲突。

请尝试减少随机搜索中“最大试验”的数量,这可能会解决问题。

于 2020-06-08T09:22:07.853 回答
0

我在 Hyperband 搜索中遇到了同样的问题。

对我来说,通过从调谐器搜索中删除“Early Stopping”回调解决了这个问题。

于 2020-08-01T11:18:04.833 回答
0

我遇到了这个问题,因为我用相同的名称命名了两个超参数。

例如,在 build_model(hp) 函数中,我有:

def build_model(hp):
   ...
   a = hp.Choice('embedding_dim', [32, 64])
   b = hp.Choice('embedding_dim', [128, 256])
   ...

最后一点是要小心有更多的超参数组合进行试验。在我的 build_model 函数示例中,我有 4 种可能的超参数组合 (2*2),因此 max_trials <= 4。

我希望它会帮助某人。

于 2022-02-15T13:33:18.033 回答
0

对我来说,我通过从 build_model 函数中删除 hp = HyperParameters() 解决了这个问题。我的意思是,在构建模型函数之外初始化 hp 变量。

于 2021-06-11T19:24:30.280 回答
0

我发现了同样的问题,并且找到了一个非常简单的解决方案。如果您只从 keras tunner 生成的目录中删除两个文件,这将非常容易。oracle.json和其他.json文件并再次运行它会起作用。

于 2021-12-01T08:28:36.927 回答