使用BOHB运行调优实验#

在本教程中,我们介绍BOHB,同时运行一个简单的Ray Tune实验。 Tune的搜索算法与BOHB集成,从而允许您无缝扩展BOHB优化过程——而无需牺牲性能。

贝叶斯优化超带宽(BOHB)结合了贝叶斯优化的优势和基于赌徒的方法(例如,HyperBand)。BOHB不依赖于目标函数的梯度,而是从搜索空间的样本中学习。它适用于优化那些不可微分的函数,具有许多局部最小值,甚至是未知但可测试的函数。因此,这种方法属于“无导数优化”和“黑箱优化”的领域。

在本示例中,我们最小化一个简单的目标,以简要演示如何通过BOHBSearch使用BOHB与Ray Tune。这一点很重要,尽管重点在机器学习实验上,Ray Tune也可以优化任何隐式或显式的目标。在这里,我们假设已安装ConfigSpace==0.4.18hpbandster==0.7.4库。要了解更多,请参阅BOHB网站

点击下方查看我们这个示例所需的所有导入内容。 您也可以直接启动一个Binder实例来自己运行这个笔记本。 只需点击导航栏顶部的火箭图标。

Hide code cell source
import tempfile
import time
from pathlib import Path

import ray
from ray import train, tune
from ray.tune.schedulers.hb_bohb import HyperBandForBOHB
from ray.tune.search.bohb import TuneBOHB
import ConfigSpace as CS

让我们首先定义一个简单的评估函数。 我们人为地暂停一会(0.1秒)以模拟一个长时间运行的机器学习实验。 这个设置假设我们正在运行实验的多个step,并尝试调整两个超参数,即widthheight以及activation

def evaluate(step, width, height, activation):
    time.sleep(0.1)
    activation_boost = 10 if activation=="relu" else 1
    return (0.1 + width * step / 100) ** (-1) + height * 0.1 + activation_boost

接下来,我们的objective函数接受一个Tune config,在训练循环中评估实验的score,并使用train.reportscore报告回Tune。

BOHB会频繁中断我们的试验,因此我们还需要保存和恢复检查点

def objective(config):
    start = 0
    if train.get_checkpoint():
        with train.get_checkpoint().as_directory() as checkpoint_dir:
            start = int((Path(checkpoint_dir) / "data.ckpt").read_text())

    for step in range(start, config["steps"]):
        score = evaluate(step, config["width"], config["height"], config["activation"])
        with tempfile.TemporaryDirectory() as checkpoint_dir:
            (Path(checkpoint_dir) / "data.ckpt").write_text(str(step))
            train.report(
                {"iterations": step, "mean_loss": score},
                checkpoint=train.Checkpoint.from_directory(checkpoint_dir)
            )

接下来,我们定义一个搜索空间。关键假设是最佳超参数存在于这个空间内。然而,如果空间非常大,那么在短时间内可能很难找到这些超参数。

search_space = {
    "steps": 100,
    "width": tune.uniform(0, 20),
    "height": tune.uniform(-100, 100),
    "activation": tune.choice(["relu", "tanh"]),
}

接下来,我们定义一个基于 TuneBOHB 的搜索算法,限制最大同时试验次数为 4,使用 ConcurrencyLimiter。在下面的代码中,algo 将处理 BO(贝叶斯优化)部分,而 scheduler 将处理 HB(超带宽)部分。

algo = TuneBOHB()
algo = tune.search.ConcurrencyLimiter(algo, max_concurrent=4)
scheduler = HyperBandForBOHB(
    time_attr="training_iteration",
    max_t=100,
    reduction_factor=4,
    stop_last_trials=False,
)

样本数量是将尝试的超参数组合数量。此 Tune 运行设置为 1000 个样本。(如果在您的机器上运行时间过长,可以减少此数量。)

num_samples = 1000

最后,我们进行实验以最小化目标的“mean_loss”,通过algo"steps": 100内进行num_samples次搜索。上一句话完全描述了我们要解决的搜索问题。考虑到这一点,请注意执行tuner.fit()是多么高效。

tuner = tune.Tuner(
    objective,
    tune_config=tune.TuneConfig(
        metric="mean_loss",
        mode="min",
        search_alg=algo,
        scheduler=scheduler,
        num_samples=num_samples,
    ),
    run_config=train.RunConfig(
        name="bohb_exp",
        stop={"training_iteration": 100},
    ),
    param_space=search_space,
)
results = tuner.fit()

== Status ==
Current time: 2022-07-22 15:07:54 (running for 00:00:26.41)
Memory usage on this node: 9.9/16.0 GiB
Using HyperBand: num_stopped=9 total_brackets=1 Round #0: Bracket(Max Size (n)=1, Milestone (r)=64, completed=66.8%): {TERMINATED: 10}
Resources requested: 0/16 CPUs, 0/0 GPUs, 0.0/4.95 GiB heap, 0.0/2.0 GiB objects
Current best trial: a0c11456 with mean_loss=-4.53376204004117 and parameters={'steps': 100, 'width': 3.7250202606878258, 'height': -57.97769618290691, 'activation': 'tanh'}
Result logdir: /Users/kai/ray_results/bohb_exp
Number of trials: 10/10 (10 TERMINATED)
Trial name status loc activation height width loss iter total time (s) ts iterations neg_mean_loss
objective_9e8d8b06TERMINATED127.0.0.1:45117tanh 37.6516 12.2188 5.28254 16 2.23943 0 15 -5.28254
objective_a052a214TERMINATED127.0.0.1:45150relu -4.1062717.9931 11.1524 4 0.531915 0 3 -11.1524
objective_a06180d6TERMINATED127.0.0.1:45151tanh 89.5711 8.0551212.884 4 0.534212 0 3 -12.884
objective_a077899eTERMINATED127.0.0.1:45152relu 67.3538 13.6388 18.6994 4 0.538702 0 3 -18.6994
objective_a0865c76TERMINATED127.0.0.1:45153relu 25.9876 9.5710315.1819 4 0.559531 0 3 -15.1819
objective_a0a42d1eTERMINATED127.0.0.1:45154relu 80.9133 13.0972 20.1201 4 0.538588 0 3 -20.1201
objective_a0c11456TERMINATED127.0.0.1:45117tanh -57.9777 3.72502-4.53376 100 13.0563 0 99 4.53376
objective_a0dce442TERMINATED127.0.0.1:45200tanh -1.68715 1.87185 3.4575 16 2.27704 0 15 -3.4575
objective_a0f84156TERMINATED127.0.0.1:45157tanh 65.9879 5.4157511.4087 4 0.548028 0 3 -11.4087
objective_a1142416TERMINATED127.0.0.1:45201tanh 5.35569 4.85644 2.74262 16 2.27749 0 15 -2.74262


Result for objective_9e8d8b06:
  date: 2022-07-22_15-07-31
  done: false
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 14.765164520733162
  neg_mean_loss: -14.765164520733162
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 0.10084700584411621
  time_this_iter_s: 0.10084700584411621
  time_total_s: 0.10084700584411621
  timestamp: 1658498851
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 9e8d8b06
  warmup_time: 0.005752086639404297
  
Result for objective_a06180d6:
  date: 2022-07-22_15-07-31
  done: false
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 19.957107852020386
  neg_mean_loss: -19.957107852020386
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 0.10333395004272461
  time_this_iter_s: 0.10333395004272461
  time_total_s: 0.10333395004272461
  timestamp: 1658498851
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: a06180d6
  warmup_time: 0.005752086639404297
  
Result for objective_a0a42d1e:
  date: 2022-07-22_15-07-31
  done: false
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 28.091327935768636
  neg_mean_loss: -28.091327935768636
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 0.10419368743896484
  time_this_iter_s: 0.10419368743896484
  time_total_s: 0.10419368743896484
  timestamp: 1658498851
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: a0a42d1e
  warmup_time: 0.005752086639404297
  
Result for objective_a0c11456:
  date: 2022-07-22_15-07-31
  done: false
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 5.202230381709309
  neg_mean_loss: -5.202230381709309
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 0.10060286521911621
  time_this_iter_s: 0.10060286521911621
  time_total_s: 0.10060286521911621
  timestamp: 1658498851
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: a0c11456
  warmup_time: 0.005752086639404297
  
Result for objective_a0dce442:
  date: 2022-07-22_15-07-32
  done: false
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 10.831285273000042
  neg_mean_loss: -10.831285273000042
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 0.10183191299438477
  time_this_iter_s: 0.10183191299438477
  time_total_s: 0.10183191299438477
  timestamp: 1658498852
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: a0dce442
  warmup_time: 0.005752086639404297
  
Result for objective_a0f84156:
  date: 2022-07-22_15-07-32
  done: false
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 17.598785421495204
  neg_mean_loss: -17.598785421495204
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 0.10328507423400879
  time_this_iter_s: 0.10328507423400879
  time_total_s: 0.10328507423400879
  timestamp: 1658498852
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: a0f84156
  warmup_time: 0.005752086639404297
  
Result for objective_a1142416:
  date: 2022-07-22_15-07-32
  done: false
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 11.53556906389516
  neg_mean_loss: -11.53556906389516
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 0.10475611686706543
  time_this_iter_s: 0.10475611686706543
  time_total_s: 0.10475611686706543
  timestamp: 1658498852
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: a1142416
  warmup_time: 0.005752086639404297
  
Result for objective_a052a214:
  date: 2022-07-22_15-07-34
  done: false
  experiment_id: 0fb96edfd1b34561b337e7146a3c64aa
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 19.5893732640325
  neg_mean_loss: -19.5893732640325
  node_ip: 127.0.0.1
  pid: 45126
  time_since_restore: 0.10437989234924316
  time_this_iter_s: 0.10437989234924316
  time_total_s: 0.10437989234924316
  timestamp: 1658498854
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: a052a214
  warmup_time: 0.003122091293334961
  
Result for objective_a077899e:
  date: 2022-07-22_15-07-34
  done: false
  experiment_id: 008f8a44fb0c4475a3e9dad32f1bd2c9
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 26.735381559909975
  neg_mean_loss: -26.735381559909975
  node_ip: 127.0.0.1
  pid: 45129
  time_since_restore: 0.10449695587158203
  time_this_iter_s: 0.10449695587158203
  time_total_s: 0.10449695587158203
  timestamp: 1658498854
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: a077899e
  warmup_time: 0.0031490325927734375
  
Result for objective_a0865c76:
  date: 2022-07-22_15-07-34
  done: false
  experiment_id: 06a194a4b7784ca5932a66e44e3cd815
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 22.598763488408313
  neg_mean_loss: -22.598763488408313
  node_ip: 127.0.0.1
  pid: 45132
  time_since_restore: 0.10512685775756836
  time_this_iter_s: 0.10512685775756836
  time_total_s: 0.10512685775756836
  timestamp: 1658498854
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: a0865c76
  warmup_time: 0.00397801399230957
  
(objective pid=45117) 2022-07-22 15:07:34,468	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_9e8d8b06_1_activation=tanh,height=37.6516,steps=100,width=12.2188_2022-07-22_15-07-28/checkpoint_tmpf674c6
(objective pid=45117) 2022-07-22 15:07:34,469	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10084700584411621, '_episodes_total': 0}
(objective pid=45154) 2022-07-22 15:07:37,958	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a0a42d1e_6_activation=relu,height=80.9133,steps=100,width=13.0972_2022-07-22_15-07-31/checkpoint_tmp30fafa
(objective pid=45154) 2022-07-22 15:07:37,958	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10419368743896484, '_episodes_total': 0}
(objective pid=45155) 2022-07-22 15:07:37,952	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a0c11456_7_activation=tanh,height=-57.9777,steps=100,width=3.7250_2022-07-22_15-07-31/checkpoint_tmp7c225a
(objective pid=45155) 2022-07-22 15:07:37,952	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10060286521911621, '_episodes_total': 0}
(objective pid=45151) 2022-07-22 15:07:37,933	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a06180d6_3_activation=tanh,height=89.5711,steps=100,width=8.0551_2022-07-22_15-07-31/checkpoint_tmpcde58c
(objective pid=45151) 2022-07-22 15:07:37,933	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10333395004272461, '_episodes_total': 0}
(objective pid=45150) 2022-07-22 15:07:37,929	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a052a214_2_activation=relu,height=-4.1063,steps=100,width=17.9931_2022-07-22_15-07-31/checkpoint_tmp24072a
(objective pid=45150) 2022-07-22 15:07:37,929	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10437989234924316, '_episodes_total': 0}
(objective pid=45153) 2022-07-22 15:07:38,010	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a0865c76_5_activation=relu,height=25.9876,steps=100,width=9.5710_2022-07-22_15-07-31/checkpoint_tmpad3367
(objective pid=45153) 2022-07-22 15:07:38,010	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10512685775756836, '_episodes_total': 0}
(objective pid=45158) 2022-07-22 15:07:38,010	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a1142416_10_activation=tanh,height=5.3557,steps=100,width=4.8564_2022-07-22_15-07-32/checkpoint_tmpe18b15
(objective pid=45158) 2022-07-22 15:07:38,010	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10475611686706543, '_episodes_total': 0}
(objective pid=45156) 2022-07-22 15:07:38,008	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a0dce442_8_activation=tanh,height=-1.6871,steps=100,width=1.8718_2022-07-22_15-07-32/checkpoint_tmp01ad4f
(objective pid=45156) 2022-07-22 15:07:38,008	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10183191299438477, '_episodes_total': 0}
(objective pid=45157) 2022-07-22 15:07:38,025	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a0f84156_9_activation=tanh,height=65.9879,steps=100,width=5.4158_2022-07-22_15-07-32/checkpoint_tmp57fedd
(objective pid=45157) 2022-07-22 15:07:38,025	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10328507423400879, '_episodes_total': 0}
(objective pid=45152) 2022-07-22 15:07:38,022	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a077899e_4_activation=relu,height=67.3538,steps=100,width=13.6388_2022-07-22_15-07-31/checkpoint_tmpfdb6b4
(objective pid=45152) 2022-07-22 15:07:38,022	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10449695587158203, '_episodes_total': 0}
Result for objective_a06180d6:
  date: 2022-07-22_15-07-38
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 19.957107852020386
  neg_mean_loss: -19.957107852020386
  node_ip: 127.0.0.1
  pid: 45151
  time_since_restore: 0.10456109046936035
  time_this_iter_s: 0.10456109046936035
  time_total_s: 0.20789504051208496
  timestamp: 1658498858
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: a06180d6
  warmup_time: 0.010712862014770508
  
Result for objective_a0c11456:
  date: 2022-07-22_15-07-38
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 5.202230381709309
  neg_mean_loss: -5.202230381709309
  node_ip: 127.0.0.1
  pid: 45155
  time_since_restore: 0.10466408729553223
  time_this_iter_s: 0.10466408729553223
  time_total_s: 0.20526695251464844
  timestamp: 1658498858
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: a0c11456
  warmup_time: 0.007361888885498047
  
Result for objective_a0a42d1e:
  date: 2022-07-22_15-07-38
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 28.091327935768636
  neg_mean_loss: -28.091327935768636
  node_ip: 127.0.0.1
  pid: 45154
  time_since_restore: 0.10032892227172852
  time_this_iter_s: 0.10032892227172852
  time_total_s: 0.20452260971069336
  timestamp: 1658498858
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: a0a42d1e
  warmup_time: 0.008682966232299805
  
Result for objective_a0dce442:
  date: 2022-07-22_15-07-38
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 10.831285273000042
  neg_mean_loss: -10.831285273000042
  node_ip: 127.0.0.1
  pid: 45156
  time_since_restore: 0.10120797157287598
  time_this_iter_s: 0.10120797157287598
  time_total_s: 0.20303988456726074
  timestamp: 1658498858
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: a0dce442
  warmup_time: 0.0077381134033203125
  
Result for objective_a1142416:
  date: 2022-07-22_15-07-38
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 11.53556906389516
  neg_mean_loss: -11.53556906389516
  node_ip: 127.0.0.1
  pid: 45158
  time_since_restore: 0.10349392890930176
  time_this_iter_s: 0.10349392890930176
  time_total_s: 0.2082500457763672
  timestamp: 1658498858
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: a1142416
  warmup_time: 0.007157087326049805
  
Result for objective_a0f84156:
  date: 2022-07-22_15-07-38
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 17.598785421495204
  neg_mean_loss: -17.598785421495204
  node_ip: 127.0.0.1
  pid: 45157
  time_since_restore: 0.10368680953979492
  time_this_iter_s: 0.10368680953979492
  time_total_s: 0.2069718837738037
  timestamp: 1658498858
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: a0f84156
  warmup_time: 0.006359100341796875
  
Result for objective_a052a214:
  date: 2022-07-22_15-07-38
  done: false
  episodes_total: 0
  experiment_id: 0fb96edfd1b34561b337e7146a3c64aa
  experiment_tag: 2_activation=relu,height=-4.1063,steps=100,width=17.9931
  hostname: Kais-MacBook-Pro.local
  iterations: 3
  iterations_since_restore: 4
  mean_loss: 11.152378612292932
  neg_mean_loss: -11.152378612292932
  node_ip: 127.0.0.1
  pid: 45150
  time_since_restore: 0.4275352954864502
  time_this_iter_s: 0.1124732494354248
  time_total_s: 0.5319151878356934
  timestamp: 1658498858
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 4
  trial_id: a052a214
  warmup_time: 0.010692834854125977
  
Result for objective_9e8d8b06:
  date: 2022-07-22_15-07-39
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 14.765164520733162
  neg_mean_loss: -14.765164520733162
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 0.10145044326782227
  time_this_iter_s: 0.10145044326782227
  time_total_s: 0.6308252811431885
  timestamp: 1658498859
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 9e8d8b06
  warmup_time: 0.005752086639404297
  
(objective pid=45117) 2022-07-22 15:07:39,222	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_9e8d8b06_1_activation=tanh,height=37.6516,steps=100,width=12.2188_2022-07-22_15-07-28/checkpoint_tmpacb5ff
(objective pid=45117) 2022-07-22 15:07:39,223	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.5293748378753662, '_episodes_total': 0}
(objective pid=45199) 2022-07-22 15:07:41,833	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a0c11456_7_activation=tanh,height=-57.9777,steps=100,width=3.7250_2022-07-22_15-07-31/checkpoint_tmpdf2071
(objective pid=45199) 2022-07-22 15:07:41,833	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.53450608253479, '_episodes_total': 0}
(objective pid=45200) 2022-07-22 15:07:41,833	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a0dce442_8_activation=tanh,height=-1.6871,steps=100,width=1.8718_2022-07-22_15-07-32/checkpoint_tmp9cd0fc
(objective pid=45200) 2022-07-22 15:07:41,833	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.5349018573760986, '_episodes_total': 0}
(objective pid=45201) 2022-07-22 15:07:41,882	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a1142416_10_activation=tanh,height=5.3557,steps=100,width=4.8564_2022-07-22_15-07-32/checkpoint_tmp7bd297
(objective pid=45201) 2022-07-22 15:07:41,882	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.5445291996002197, '_episodes_total': 0}
Result for objective_a0c11456:
  date: 2022-07-22_15-07-43
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 11
  iterations_since_restore: 12
  mean_loss: -2.8360322412948014
  neg_mean_loss: 2.8360322412948014
  node_ip: 127.0.0.1
  pid: 45199
  time_since_restore: 1.3028512001037598
  time_this_iter_s: 0.10884499549865723
  time_total_s: 1.8373572826385498
  timestamp: 1658498863
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 12
  trial_id: a0c11456
  warmup_time: 0.0074689388275146484
  
Result for objective_a0dce442:
  date: 2022-07-22_15-07-43
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 11
  iterations_since_restore: 12
  mean_loss: 4.100295137851358
  neg_mean_loss: -4.100295137851358
  node_ip: 127.0.0.1
  pid: 45200
  time_since_restore: 1.3082969188690186
  time_this_iter_s: 0.10707712173461914
  time_total_s: 1.8431987762451172
  timestamp: 1658498863
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 12
  trial_id: a0dce442
  warmup_time: 0.007519960403442383
  
Result for objective_a1142416:
  date: 2022-07-22_15-07-43
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 11
  iterations_since_restore: 12
  mean_loss: 3.112339173810433
  neg_mean_loss: -3.112339173810433
  node_ip: 127.0.0.1
  pid: 45201
  time_since_restore: 1.2954580783843994
  time_this_iter_s: 0.1081690788269043
  time_total_s: 1.8399872779846191
  timestamp: 1658498863
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 12
  trial_id: a1142416
  warmup_time: 0.006086826324462891
  
Result for objective_a1142416:
  date: 2022-07-22_15-07-43
  done: true
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 15
  iterations_since_restore: 16
  mean_loss: 2.7426202715773025
  neg_mean_loss: -2.7426202715773025
  node_ip: 127.0.0.1
  pid: 45201
  time_since_restore: 1.7329609394073486
  time_this_iter_s: 0.1072549819946289
  time_total_s: 2.2774901390075684
  timestamp: 1658498863
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 16
  trial_id: a1142416
  warmup_time: 0.006086826324462891
  
(objective pid=45117) 2022-07-22 15:07:43,765	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp/objective_a0c11456_7_activation=tanh,height=-57.9777,steps=100,width=3.7250_2022-07-22_15-07-31/checkpoint_tmp3f09eb
(objective pid=45117) 2022-07-22 15:07:43,765	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 2.273958206176758, '_episodes_total': 0}
Result for objective_a0c11456:
  date: 2022-07-22_15-07-48
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 40
  iterations_since_restore: 41
  mean_loss: -4.168842006342518
  neg_mean_loss: 4.168842006342518
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 4.4259912967681885
  time_this_iter_s: 0.10874629020690918
  time_total_s: 6.699949502944946
  timestamp: 1658498868
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 41
  trial_id: a0c11456
  warmup_time: 0.005752086639404297
  
Result for objective_a0c11456:
  date: 2022-07-22_15-07-53
  done: false
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 87
  iterations_since_restore: 88
  mean_loss: -4.498437215767879
  neg_mean_loss: 4.498437215767879
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 9.488422155380249
  time_this_iter_s: 0.10667800903320312
  time_total_s: 11.762380361557007
  timestamp: 1658498873
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 88
  trial_id: a0c11456
  warmup_time: 0.005752086639404297
  
Result for objective_a0c11456:
  date: 2022-07-22_15-07-54
  done: true
  episodes_total: 0
  experiment_id: c1cb9895c3f04e73b7cce9435cd92c68
  hostname: Kais-MacBook-Pro.local
  iterations: 99
  iterations_since_restore: 100
  mean_loss: -4.53376204004117
  neg_mean_loss: 4.53376204004117
  node_ip: 127.0.0.1
  pid: 45117
  time_since_restore: 10.782363176345825
  time_this_iter_s: 0.1065070629119873
  time_total_s: 13.056321382522583
  timestamp: 1658498874
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 100
  trial_id: a0c11456
  warmup_time: 0.005752086639404297
  

以下是找到的超参数,用于最小化定义目标的平均损失。

print("Best hyperparameters found were: ", results.get_best_result().config)
Best hyperparameters found were:  {'steps': 100, 'width': 3.7250202606878258, 'height': -57.97769618290691, 'activation': 'tanh'}

可选:通过TuneBOHB算法传递搜索空间#

我们可以使用ConfigSpace定义超参数搜索空间,这是BOHB接受的格式。

config_space = CS.ConfigurationSpace()
config_space.add_hyperparameter(
    CS.Constant("steps", 100)
)
config_space.add_hyperparameter(
    CS.UniformFloatHyperparameter("width", lower=0, upper=20)
)
config_space.add_hyperparameter(
    CS.UniformFloatHyperparameter("height", lower=-100, upper=100)
)
config_space.add_hyperparameter(
    CS.CategoricalHyperparameter(
        "activation", choices=["relu", "tanh"]
    )
)
/Users/kai/.pyenv/versions/3.7.7/lib/python3.7/site-packages/ipykernel_launcher.py:3: DeprecationWarning: `np.float` is a deprecated alias for the builtin `float`. To silence this warning, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
  This is separate from the ipykernel package so we can avoid doing imports until
/Users/kai/.pyenv/versions/3.7.7/lib/python3.7/site-packages/ipykernel_launcher.py:6: DeprecationWarning: `np.float` is a deprecated alias for the builtin `float`. To silence this warning, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
  
/Users/kai/.pyenv/versions/3.7.7/lib/python3.7/site-packages/ipykernel_launcher.py:9: DeprecationWarning: `np.float` is a deprecated alias for the builtin `float`. To silence this warning, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
  if __name__ == "__main__":
/Users/kai/.pyenv/versions/3.7.7/lib/python3.7/site-packages/ipykernel_launcher.py:13: DeprecationWarning: `np.float` is a deprecated alias for the builtin `float`. To silence this warning, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
  del sys.path[0]
activation, Type: Categorical, Choices: {relu, tanh}, Default: relu
# 由于我们直接将配置空间传递给搜索器,
# 我们还需要在其中定义度量和模式,此外
# 到调谐器()
algo = TuneBOHB(
    space=config_space,
    metric="mean_loss",
    mode="max",
)
algo = tune.search.ConcurrencyLimiter(algo, max_concurrent=4)
scheduler = HyperBandForBOHB(
    time_attr="training_iteration",
    max_t=100,
    reduction_factor=4,
    stop_last_trials=False,
)
tuner = tune.Tuner(
    objective,
    tune_config=tune.TuneConfig(
        metric="mean_loss",
        mode="min",
        search_alg=algo,
        scheduler=scheduler,
        num_samples=num_samples,
    ),
    run_config=train.RunConfig(
        name="bohb_exp_2",
        stop={"training_iteration": 100},
    ),
)
results = tuner.fit()
== Status ==
Current time: 2022-07-22 15:11:40 (running for 00:00:29.52)
Memory usage on this node: 10.3/16.0 GiB
Using HyperBand: num_stopped=9 total_brackets=1 Round #0: Bracket(Max Size (n)=1, Milestone (r)=64, completed=66.8%): {TERMINATED: 10}
Resources requested: 0/16 CPUs, 0/0 GPUs, 0.0/4.95 GiB heap, 0.0/2.0 GiB objects
Current best trial: 25b64488 with mean_loss=-3.74634537130406 and parameters={'activation': 'tanh', 'height': -48.451797714080236, 'steps': 100, 'width': 10.119125894538891}
Result logdir: /Users/kai/ray_results/bohb_exp_2
Number of trials: 10/10 (10 TERMINATED)
Trial name status loc activation height steps width loss iter total time (s) ts iterations neg_mean_loss
objective_2397442cTERMINATED127.0.0.1:45401tanh 32.8422 10012.1847 4.80297 16 2.25951 0 15 -4.80297
objective_25b4a998TERMINATED127.0.0.1:45401relu 20.2852 100 2.08202 18.1839 4 0.535426 0 3 -18.1839
objective_25b64488TERMINATED127.0.0.1:45453tanh -48.4518 10010.1191 -3.74635 100 11.5319 0 99 3.74635
objective_25b7dfe6TERMINATED127.0.0.1:45403relu -18.8439 10019.1277 9.59966 4 0.581903 0 3 -9.59966
objective_25cfab4eTERMINATED127.0.0.1:45404relu 17.2057 100 0.31708320.8519 4 0.59468 0 3 -20.8519
objective_278eba4cTERMINATED127.0.0.1:45454relu -27.0179 10013.577 7.76626 16 2.31198 0 15 -7.76626
objective_279d01a6TERMINATED127.0.0.1:45407relu 59.1103 100 2.4466 21.6781 4 0.575556 0 3 -21.6781
objective_27aa31e6TERMINATED127.0.0.1:45409relu 50.058 10017.3776 16.6153 4 0.537561 0 3 -16.6153
objective_27b7e2beTERMINATED127.0.0.1:45455relu -51.2093 100 8.94948 5.57235 16 2.64238 0 15 -5.57235
objective_27c59a80TERMINATED127.0.0.1:45446relu 29.165 100 4.26995 17.3006 4 0.539177 0 3 -17.3006


Result for objective_2397442c:
  date: 2022-07-22_15-11-15
  done: false
  experiment_id: 1a4ebf62df50443492dc6df792fcb67a
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 14.284216630043918
  neg_mean_loss: -14.284216630043918
  node_ip: 127.0.0.1
  pid: 45353
  time_since_restore: 0.10108494758605957
  time_this_iter_s: 0.10108494758605957
  time_total_s: 0.10108494758605957
  timestamp: 1658499075
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 2397442c
  warmup_time: 0.002635955810546875
  
Result for objective_25b7dfe6:
  date: 2022-07-22_15-11-17
  done: false
  experiment_id: 0fd6607aa9674cb5a05b6ce63e474fd3
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 18.115606120430186
  neg_mean_loss: -18.115606120430186
  node_ip: 127.0.0.1
  pid: 45371
  time_since_restore: 0.10365676879882812
  time_this_iter_s: 0.10365676879882812
  time_total_s: 0.10365676879882812
  timestamp: 1658499077
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 25b7dfe6
  warmup_time: 0.005063056945800781
  
Result for objective_25b4a998:
  date: 2022-07-22_15-11-17
  done: false
  experiment_id: 20a5d76dc18749e4b1c9f15c5d8b43cf
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 22.028519616352035
  neg_mean_loss: -22.028519616352035
  node_ip: 127.0.0.1
  pid: 45369
  time_since_restore: 0.10431909561157227
  time_this_iter_s: 0.10431909561157227
  time_total_s: 0.10431909561157227
  timestamp: 1658499077
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 25b4a998
  warmup_time: 0.004379987716674805
  
Result for objective_25b64488:
  date: 2022-07-22_15-11-17
  done: false
  experiment_id: 75e7c1ad20a2495cac29630df6c3c782
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 6.154820228591976
  neg_mean_loss: -6.154820228591976
  node_ip: 127.0.0.1
  pid: 45370
  time_since_restore: 0.10407018661499023
  time_this_iter_s: 0.10407018661499023
  time_total_s: 0.10407018661499023
  timestamp: 1658499077
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 25b64488
  warmup_time: 0.003113985061645508
  
Result for objective_25cfab4e:
  date: 2022-07-22_15-11-18
  done: false
  experiment_id: fdc43ca37ed44cde857ca150a8f1e84f
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 21.72056884033249
  neg_mean_loss: -21.72056884033249
  node_ip: 127.0.0.1
  pid: 45378
  time_since_restore: 0.10431408882141113
  time_this_iter_s: 0.10431408882141113
  time_total_s: 0.10431408882141113
  timestamp: 1658499078
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 25cfab4e
  warmup_time: 0.0029649734497070312
  
Result for objective_279d01a6:
  date: 2022-07-22_15-11-18
  done: false
  experiment_id: 20a5d76dc18749e4b1c9f15c5d8b43cf
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 25.911032294938884
  neg_mean_loss: -25.911032294938884
  node_ip: 127.0.0.1
  pid: 45369
  time_since_restore: 0.10361599922180176
  time_this_iter_s: 0.10361599922180176
  time_total_s: 0.10361599922180176
  timestamp: 1658499078
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 279d01a6
  warmup_time: 0.004379987716674805
  
Result for objective_27aa31e6:
  date: 2022-07-22_15-11-18
  done: false
  experiment_id: 75e7c1ad20a2495cac29630df6c3c782
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 25.005798678308594
  neg_mean_loss: -25.005798678308594
  node_ip: 127.0.0.1
  pid: 45370
  time_since_restore: 0.10430693626403809
  time_this_iter_s: 0.10430693626403809
  time_total_s: 0.10430693626403809
  timestamp: 1658499078
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 27aa31e6
  warmup_time: 0.003113985061645508
  
Result for objective_27b7e2be:
  date: 2022-07-22_15-11-18
  done: false
  experiment_id: fdc43ca37ed44cde857ca150a8f1e84f
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 14.879072389639937
  neg_mean_loss: -14.879072389639937
  node_ip: 127.0.0.1
  pid: 45378
  time_since_restore: 0.10371994972229004
  time_this_iter_s: 0.10371994972229004
  time_total_s: 0.10371994972229004
  timestamp: 1658499078
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 27b7e2be
  warmup_time: 0.0029649734497070312
  
Result for objective_27c59a80:
  date: 2022-07-22_15-11-18
  done: false
  experiment_id: 20a5d76dc18749e4b1c9f15c5d8b43cf
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 22.916501000037474
  neg_mean_loss: -22.916501000037474
  node_ip: 127.0.0.1
  pid: 45369
  time_since_restore: 0.10353732109069824
  time_this_iter_s: 0.10353732109069824
  time_total_s: 0.10353732109069824
  timestamp: 1658499078
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 27c59a80
  warmup_time: 0.004379987716674805
  
Result for objective_278eba4c:
  date: 2022-07-22_15-11-20
  done: false
  experiment_id: 90186993d7ff42698c4615640d47d896
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 17.29821256734647
  neg_mean_loss: -17.29821256734647
  node_ip: 127.0.0.1
  pid: 45393
  time_since_restore: 0.10304784774780273
  time_this_iter_s: 0.10304784774780273
  time_total_s: 0.10304784774780273
  timestamp: 1658499080
  timesteps_since_restore: 0
  training_iteration: 1
  trial_id: 278eba4c
  warmup_time: 0.0027189254760742188
  
Result for objective_2397442c:
  date: 2022-07-22_15-11-20
  done: false
  episodes_total: 0
  experiment_id: 1a4ebf62df50443492dc6df792fcb67a
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 14.284216630043918
  neg_mean_loss: -14.284216630043918
  node_ip: 127.0.0.1
  pid: 45370
  time_since_restore: 0.10411787033081055
  time_this_iter_s: 0.10411787033081055
  time_total_s: 0.20520281791687012
  timestamp: 1658499080
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 2397442c
  warmup_time: 0.003113985061645508
  
(objective pid=45370) 2022-07-22 15:11:20,826	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_2397442c_1_activation=tanh,height=32.8422,steps=100,width=12.1847_2022-07-22_15-11-11/checkpoint_tmpf4b290
(objective pid=45370) 2022-07-22 15:11:20,826	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10108494758605957, '_episodes_total': 0}
Result for objective_25b4a998:
  date: 2022-07-22_15-11-24
  done: false
  episodes_total: 0
  experiment_id: 20a5d76dc18749e4b1c9f15c5d8b43cf
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 22.028519616352035
  neg_mean_loss: -22.028519616352035
  node_ip: 127.0.0.1
  pid: 45401
  time_since_restore: 0.10445284843444824
  time_this_iter_s: 0.10445284843444824
  time_total_s: 0.2087719440460205
  timestamp: 1658499084
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 25b4a998
  warmup_time: 0.010488033294677734
  
(objective pid=45405) 2022-07-22 15:11:23,963	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_278eba4c_6_activation=relu,height=-27.0179,steps=100,width=13.5770_2022-07-22_15-11-18/checkpoint_tmpd366c5
(objective pid=45405) 2022-07-22 15:11:23,964	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10304784774780273, '_episodes_total': 0}
(objective pid=45401) 2022-07-22 15:11:23,959	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_25b4a998_2_activation=relu,height=20.2852,steps=100,width=2.0820_2022-07-22_15-11-14/checkpoint_tmpc96cdb
(objective pid=45401) 2022-07-22 15:11:23,959	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10431909561157227, '_episodes_total': 0}
(objective pid=45402) 2022-07-22 15:11:23,966	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_25b64488_3_activation=tanh,height=-48.4518,steps=100,width=10.1191_2022-07-22_15-11-14/checkpoint_tmp5ce175
(objective pid=45402) 2022-07-22 15:11:23,966	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10407018661499023, '_episodes_total': 0}
(objective pid=45407) 2022-07-22 15:11:23,966	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_279d01a6_7_activation=relu,height=59.1103,steps=100,width=2.4466_2022-07-22_15-11-18/checkpoint_tmp942eac
(objective pid=45407) 2022-07-22 15:11:23,966	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10361599922180176, '_episodes_total': 0}
(objective pid=45404) 2022-07-22 15:11:23,960	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_25cfab4e_5_activation=relu,height=17.2057,steps=100,width=0.3171_2022-07-22_15-11-15/checkpoint_tmpc8ceee
(objective pid=45404) 2022-07-22 15:11:23,960	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10431408882141113, '_episodes_total': 0}
(objective pid=45403) 2022-07-22 15:11:23,966	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_25b7dfe6_4_activation=relu,height=-18.8439,steps=100,width=19.1277_2022-07-22_15-11-14/checkpoint_tmp24108b
(objective pid=45403) 2022-07-22 15:11:23,966	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10365676879882812, '_episodes_total': 0}
(objective pid=45409) 2022-07-22 15:11:23,997	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_27aa31e6_8_activation=relu,height=50.0580,steps=100,width=17.3776_2022-07-22_15-11-18/checkpoint_tmp4218e5
(objective pid=45409) 2022-07-22 15:11:23,997	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10430693626403809, '_episodes_total': 0}
Result for objective_27aa31e6:
  date: 2022-07-22_15-11-24
  done: false
  episodes_total: 0
  experiment_id: 75e7c1ad20a2495cac29630df6c3c782
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 25.005798678308594
  neg_mean_loss: -25.005798678308594
  node_ip: 127.0.0.1
  pid: 45409
  time_since_restore: 0.10203695297241211
  time_this_iter_s: 0.10203695297241211
  time_total_s: 0.2063438892364502
  timestamp: 1658499084
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 27aa31e6
  warmup_time: 0.0062160491943359375
  
Result for objective_279d01a6:
  date: 2022-07-22_15-11-24
  done: false
  episodes_total: 0
  experiment_id: 20a5d76dc18749e4b1c9f15c5d8b43cf
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 25.911032294938884
  neg_mean_loss: -25.911032294938884
  node_ip: 127.0.0.1
  pid: 45407
  time_since_restore: 0.10443115234375
  time_this_iter_s: 0.10443115234375
  time_total_s: 0.20804715156555176
  timestamp: 1658499084
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 279d01a6
  warmup_time: 0.010073184967041016
  
Result for objective_25b7dfe6:
  date: 2022-07-22_15-11-24
  done: false
  episodes_total: 0
  experiment_id: 0fd6607aa9674cb5a05b6ce63e474fd3
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 18.115606120430186
  neg_mean_loss: -18.115606120430186
  node_ip: 127.0.0.1
  pid: 45403
  time_since_restore: 0.1044917106628418
  time_this_iter_s: 0.1044917106628418
  time_total_s: 0.20814847946166992
  timestamp: 1658499084
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 25b7dfe6
  warmup_time: 0.011971235275268555
  
Result for objective_25cfab4e:
  date: 2022-07-22_15-11-24
  done: false
  episodes_total: 0
  experiment_id: fdc43ca37ed44cde857ca150a8f1e84f
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 21.72056884033249
  neg_mean_loss: -21.72056884033249
  node_ip: 127.0.0.1
  pid: 45404
  time_since_restore: 0.10379600524902344
  time_this_iter_s: 0.10379600524902344
  time_total_s: 0.20811009407043457
  timestamp: 1658499084
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 25cfab4e
  warmup_time: 0.009023904800415039
  
Result for objective_25b64488:
  date: 2022-07-22_15-11-24
  done: false
  episodes_total: 0
  experiment_id: 75e7c1ad20a2495cac29630df6c3c782
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 6.154820228591976
  neg_mean_loss: -6.154820228591976
  node_ip: 127.0.0.1
  pid: 45402
  time_since_restore: 0.10440897941589355
  time_this_iter_s: 0.10440897941589355
  time_total_s: 0.2084791660308838
  timestamp: 1658499084
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 25b64488
  warmup_time: 0.011686325073242188
  
(objective pid=45424) 2022-07-22 15:11:24,383	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_27b7e2be_9_activation=relu,height=-51.2093,steps=100,width=8.9495_2022-07-22_15-11-18/checkpoint_tmp996dec
(objective pid=45424) 2022-07-22 15:11:24,384	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10371994972229004, '_episodes_total': 0}
Result for objective_27b7e2be:
  date: 2022-07-22_15-11-24
  done: false
  episodes_total: 0
  experiment_id: fdc43ca37ed44cde857ca150a8f1e84f
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 14.879072389639937
  neg_mean_loss: -14.879072389639937
  node_ip: 127.0.0.1
  pid: 45424
  time_since_restore: 0.1031639575958252
  time_this_iter_s: 0.1031639575958252
  time_total_s: 0.20688390731811523
  timestamp: 1658499084
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 27b7e2be
  warmup_time: 0.0069200992584228516
  
(objective pid=45446) 2022-07-22 15:11:26,749	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_27c59a80_10_activation=relu,height=29.1650,steps=100,width=4.2700_2022-07-22_15-11-18/checkpoint_tmp49d063
(objective pid=45446) 2022-07-22 15:11:26,749	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.10353732109069824, '_episodes_total': 0}
Result for objective_27c59a80:
  date: 2022-07-22_15-11-26
  done: false
  episodes_total: 0
  experiment_id: 20a5d76dc18749e4b1c9f15c5d8b43cf
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 22.916501000037474
  neg_mean_loss: -22.916501000037474
  node_ip: 127.0.0.1
  pid: 45446
  time_since_restore: 0.10502910614013672
  time_this_iter_s: 0.10502910614013672
  time_total_s: 0.20856642723083496
  timestamp: 1658499086
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 27c59a80
  warmup_time: 0.007359027862548828
  
(objective pid=45401) 2022-07-22 15:11:27,287	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_2397442c_1_activation=tanh,height=32.8422,steps=100,width=12.1847_2022-07-22_15-11-11/checkpoint_tmp2e0d09
(objective pid=45401) 2022-07-22 15:11:27,287	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.535153865814209, '_episodes_total': 0}
Result for objective_2397442c:
  date: 2022-07-22_15-11-27
  done: false
  episodes_total: 0
  experiment_id: 1a4ebf62df50443492dc6df792fcb67a
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 14.284216630043918
  neg_mean_loss: -14.284216630043918
  node_ip: 127.0.0.1
  pid: 45401
  time_since_restore: 0.1044008731842041
  time_this_iter_s: 0.1044008731842041
  time_total_s: 0.6395547389984131
  timestamp: 1658499087
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 2397442c
  warmup_time: 0.010488033294677734
  
Result for objective_278eba4c:
  date: 2022-07-22_15-11-29
  done: false
  episodes_total: 0
  experiment_id: 90186993d7ff42698c4615640d47d896
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 17.29821256734647
  neg_mean_loss: -17.29821256734647
  node_ip: 127.0.0.1
  pid: 45454
  time_since_restore: 0.1037449836730957
  time_this_iter_s: 0.1037449836730957
  time_total_s: 0.6844677925109863
  timestamp: 1658499089
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 278eba4c
  warmup_time: 0.006754875183105469
  
(objective pid=45454) 2022-07-22 15:11:29,879	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_278eba4c_6_activation=relu,height=-27.0179,steps=100,width=13.5770_2022-07-22_15-11-18/checkpoint_tmp2835d4
(objective pid=45454) 2022-07-22 15:11:29,879	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.5807228088378906, '_episodes_total': 0}
(objective pid=45455) 2022-07-22 15:11:29,909	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_27b7e2be_9_activation=relu,height=-51.2093,steps=100,width=8.9495_2022-07-22_15-11-18/checkpoint_tmpd7ea63
(objective pid=45455) 2022-07-22 15:11:29,910	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.9150340557098389, '_episodes_total': 0}
(objective pid=45453) 2022-07-22 15:11:29,930	INFO trainable.py:655 -- Restored on 127.0.0.1 from checkpoint: /Users/kai/ray_results/bohb_exp_2/objective_25b64488_3_activation=tanh,height=-48.4518,steps=100,width=10.1191_2022-07-22_15-11-14/checkpoint_tmp11824e
(objective pid=45453) 2022-07-22 15:11:29,930	INFO trainable.py:663 -- Current state after restoring: {'_iteration': 0, '_timesteps_total': 0, '_time_total': 0.5960800647735596, '_episodes_total': 0}
Result for objective_27b7e2be:
  date: 2022-07-22_15-11-30
  done: false
  episodes_total: 0
  experiment_id: fdc43ca37ed44cde857ca150a8f1e84f
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 14.879072389639937
  neg_mean_loss: -14.879072389639937
  node_ip: 127.0.0.1
  pid: 45455
  time_since_restore: 0.10332393646240234
  time_this_iter_s: 0.10332393646240234
  time_total_s: 1.0183579921722412
  timestamp: 1658499090
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 27b7e2be
  warmup_time: 0.006285190582275391
  
Result for objective_25b64488:
  date: 2022-07-22_15-11-30
  done: false
  episodes_total: 0
  experiment_id: 75e7c1ad20a2495cac29630df6c3c782
  hostname: Kais-MacBook-Pro.local
  iterations: 0
  iterations_since_restore: 1
  mean_loss: 6.154820228591976
  neg_mean_loss: -6.154820228591976
  node_ip: 127.0.0.1
  pid: 45453
  time_since_restore: 0.1026160717010498
  time_this_iter_s: 0.1026160717010498
  time_total_s: 0.6986961364746094
  timestamp: 1658499090
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 1
  trial_id: 25b64488
  warmup_time: 0.006460905075073242
  
Result for objective_25b64488:
  date: 2022-07-22_15-11-35
  done: false
  episodes_total: 0
  experiment_id: 75e7c1ad20a2495cac29630df6c3c782
  hostname: Kais-MacBook-Pro.local
  iterations: 46
  iterations_since_restore: 47
  mean_loss: -3.634865890857194
  neg_mean_loss: 3.634865890857194
  node_ip: 127.0.0.1
  pid: 45453
  time_since_restore: 5.1935131549835205
  time_this_iter_s: 0.10786604881286621
  time_total_s: 5.78959321975708
  timestamp: 1658499095
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 47
  trial_id: 25b64488
  warmup_time: 0.006460905075073242
  
Result for objective_25b64488:
  date: 2022-07-22_15-11-40
  done: false
  episodes_total: 0
  experiment_id: 75e7c1ad20a2495cac29630df6c3c782
  hostname: Kais-MacBook-Pro.local
  iterations: 93
  iterations_since_restore: 94
  mean_loss: -3.740036002402735
  neg_mean_loss: 3.740036002402735
  node_ip: 127.0.0.1
  pid: 45453
  time_since_restore: 10.256795167922974
  time_this_iter_s: 0.10682511329650879
  time_total_s: 10.852875232696533
  timestamp: 1658499100
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 94
  trial_id: 25b64488
  warmup_time: 0.006460905075073242
  
Result for objective_25b64488:
  date: 2022-07-22_15-11-40
  done: true
  episodes_total: 0
  experiment_id: 75e7c1ad20a2495cac29630df6c3c782
  hostname: Kais-MacBook-Pro.local
  iterations: 99
  iterations_since_restore: 100
  mean_loss: -3.74634537130406
  neg_mean_loss: 3.74634537130406
  node_ip: 127.0.0.1
  pid: 45453
  time_since_restore: 10.935801029205322
  time_this_iter_s: 0.10489487648010254
  time_total_s: 11.531881093978882
  timestamp: 1658499100
  timesteps_since_restore: 0
  timesteps_total: 0
  training_iteration: 100
  trial_id: 25b64488
  warmup_time: 0.006460905075073242
  

在这里再次列出了为最小化定义目标的平均损失而找到的超参数。

print("Best hyperparameters found were: ", results.get_best_result().config)
Best hyperparameters found were:  {'activation': 'tanh', 'height': -48.451797714080236, 'steps': 100, 'width': 10.119125894538891}