1

搜索完成后,我正在尝试重新加载或访问Keras-Tuner 以检查结果。我找不到与此问题相关的任何文档或答案。TrialsTuner

例如,我设置BayesianOptimization搜索最佳超参数如下:

## Build Hyper Parameter Search
tuner = kt.BayesianOptimization(build_model,
                     objective='val_categorical_accuracy',
                     max_trials=10,
                     directory='kt_dir',
                     project_name='lstm_dense_bo')

tuner.search((X_train_seq, X_train_num), y_train_cat,
             epochs=30,
             batch_size=64,
             validation_data=((X_val_seq, X_val_num), y_val_cat),
             callbacks=[callbacks.EarlyStopping(monitor='val_loss', patience=3, 
                                                restore_best_weights=True)])

我看到这会在kt_dir项目名称的目录中创建试用文件,lstm_dense_bo如下所示: 调谐器对象

现在,如果我重新启动 Jupyter 内核,如何将这些试验重新加载到Tuner对象中,然后检查最佳模型或最佳超参数或最佳试验?

我非常感谢您的帮助。谢谢

4

2 回答 2

0

使用

tuner = kt.BayesianOptimization(build_model,
                         objective='val_categorical_accuracy',
                         max_trials=10,
                         directory='kt_dir',
                         project_name='lstm_dense_bo')

将再次加载调谐器。

于 2021-09-29T10:00:22.380 回答
0

我试图做同样的事情。我正在研究 keras 文档以寻找比这更简单的方法,但找不到 - 所以如果任何其他 SO-ers 有更好的主意,请告诉我们!

  1. 加载以前的调谐器。确保overwrite=False,否则您将删除您的试验。
workdir = "mlp_202202151345"
obj = "val_recall"
tuner = kt.Hyperband(
    hypermodel=build_model,
    metrics=metrics,
    objective=kt.Objective(obj, direction="min"),
    executions_per_trial=1,
    overwrite=False,
    directory=workdir,
    project_name="keras_tuner",
)
  1. 查找要加载的试用版。请注意,TensorBoard 对此非常有效。在这个例子中,我正在加载1a38ebaba07b77501999cb1c4ab9413e. 1a38ebaba07b77501999cb1c4ab9413e

  2. 这是我在 Keras 文档中找不到的部分。这可能取决于您使用的调谐器(我使用的是Hyperband):

tuner.oracle.get_trial('1a38ebaba07b77501999cb1c4ab9413e')

返回一个Trial对象(在文档中也找不到)。该Trial对象具有一个超参数属性,该属性将返回该试验的超参数。现在:

tuner.hypermodel.build(trial.hyperparameters)

为您提供用于训练、评估、预测等的试验模型。

注意这似乎令人不安和hacky,希望看到更好的方法。

于 2022-02-16T13:46:54.767 回答