Можно ли указать "episodes_this_iter" с помощью алгоритма поиска Ray Tune?

Я новичок в программировании / Ray и у меня простой вопрос о том, какие параметры можно указать при использовании Ray Tune. В частности, в документации по настройке лучей говорится, что все автоматически заполняемые поля (steps_this_iter,epacial_this_iter и т. Д.) Могут использоваться в качестве условий остановки или в спецификации Scheduler/Search Algorithm.

Однако следующее будет работать только после того, как я удалю спецификацию "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, 
)

1 ответ

tune.run()заполняет эти поля, чтобы мы могли использовать их где-нибудь еще. И критерий остановки - лишь одно из тех мест, где мы можем их использовать.

Чтобы понять, почему пример не работает, рассмотрим более простой аналог: episodes_total: 100

Сам тренер увеличивает количество эпизодов, чтобы остальная часть системы знала, как далеко мы продвинулись. Это не сработает, если мы попытаемся изменить его или исправить до определенного значения. То же самое относится и к другим полям в списке.


Что касается планировщика и алгоритмов поиска, у меня нет опыта. Но мы хотим поместить эти условия в расписание или сам алгоритм поиска, а не непосредственно в трейнер.

Вот пример поиска с байесовской оптимизацией, хотя я не знаю, что это значит:

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
                }
        )
)
Другие вопросы по тегам