是否可以使用ray Tune搜索算法指定“ episodes_this_iter”?

问题描述 投票:0回答:1

我是编程/ ray的新手,并且有一个简单的问题,即在使用Ray Tune时可以指定哪些参数。尤其是,ray tune文档指出,所有自动填充的字段(steps_this_iter,episoms_this_iter等)都可以用作停止条件或在“调度程序/搜索算法”规范中使用。

但是,只有在删除“ episodes_this_iter”规范后,以下内容才有效。这是否仅作为停止条件的一部分?

ray.init()
tune.run(
    PPOTrainer,
    stop = {"training_iteration": 1000},
    config={"env": qsdm.QSDEnv,
          "env_config": defaultconfig,
            "num_gpus": 0,
            "num_workers": 1,
            "lr": tune.grid_search([0.00005, 0.00001, 0.0001]),}, 
    "episodes_this_iter": 2500, 
)
reinforcement-learning ray rllib
1个回答
0
投票

tune.run()是填充这些字段的那个,因此我们可以在其他地方使用它们。停止条件只是我们可以使用它们的地方之一。

要了解为什么该示例不起作用,请考虑一个更简单的类似物:episodes_total: 100

教练本身就是增加情节数的人,因此系统的其余部分都知道我们走了多远。如果我们尝试更改它或将其固定为特定值,则对它们不起作用。相同的推理适用于list中的其他字段。


关于schedulersearch algorithms,我没有经验。但是我们想要做的是将这些条件放在计划表或搜索算法中]本身,并不在培训师中直接

这是Bayesian optimisation search的示例,尽管我不知道这样做意味着什么:

from ray.tune.suggest.bayesopt import BayesOptSearch

tune.run(

        # ...

        # 10 trials
        num_samples=10,

        search_alg=BayesOptSearch(

                # look for learning rates within this range:
                {'lr': (0.1, 0.00001)},

                # optimise for this metric:
                metric='episodes_this_iter',  # <------- auto-filled field here
                mode='max',

                utility_kwargs={
                        'kind': 'ucb',
                        'kappa': '2.5',
                        'xi': 0.0
                }
        )
)
© www.soinside.com 2019 - 2024. All rights reserved.