Рэй Тьюн; объединить график обучения населения с Hyperopt - PullRequest
1 голос
/ 17 января 2020

Можно ли комбинировать обучение на основе населения (PBT) и поиск HyperOpt?

AsyncHyperBandScheduler используется в примере Hyperopt из ray.tune

Здесь конфигурация задает некоторые параметры для функции run()

config = {
    "num_samples": 10 if args.smoke_test else 1000,
    "config": {
        "iterations": 100,
    },
    "stop": {
        "timesteps_total": 100
    },
}

и пробел является аргументом для гиперпараметра Space внутри Tune Search Algorithm с функциями hyperopt:

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

algo = HyperOptSearch()
scheduler = AsyncHyperBandScheduler()
run(easy_objective, search_alg=algo, scheduler=scheduler, **config)

тем не менее, в примере для населения с Keras пространство гиперпараметров свободно дается hyperparam_mutations внутри Планировщика испытаний мелодий с numpy функциями

pbt = PopulationBasedTraining(
    hyperparam_mutations={
        "dropout": lambda: np.random.uniform(0, 1),
        "lr": lambda: 10**np.random.randint(-10, 0),
        "rho": lambda: np.random.uniform(0, 1)
    })

и config используется по-другому:

Чтобы установить начальные параметры для отдельных лиц населения

run(MemNNModel,scheduler=pbt,
     config={
        "batch_size": 32,
        "epochs": 1,
        "dropout": 0.3,
        "lr": 0.01,
        "rho": 0.9
    })

Подводя итог:

Hyperopt занимает свое пространство гиперпараметра внутри Алгоритм поиска с функциями hyperopt Обучение на основе численности населения занимает пространство гиперпараметров внутри Планировщика испытаний с функциями numpy. Обе настройки по-разному используются

F из этого ответа Я так понимаю, что поиск Hyperopt будет учитывать только завершенные испытания.

Есть ли конфликт с выборочными гиперпараметрами из поиска Hyperopt и "измененными во время работы" гиперпараметрами из Population- Обучение? цитата: «В одном испытании может быть много разных гиперпараметров за время жизни»

...