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
}
)
)