Вызов tune.sample_from несколько раз с пользовательским вводом забивает случайные значения, сгенерированные для испытаний - PullRequest
0 голосов
/ 07 мая 2019

Я использую пользовательскую функцию для создания испытаний

tune_experiment_config = {
    "name": "experiment1",
    "run": "SecondStageDNNTune",
    "num_samples": 5,
    "resources_per_trial": {
        "cpu": 4
    },
    "local_dir": "/tmp/dump/datastore",
    "stop": {
        "validation_F1_score": 0.99
    },
    "checkpoint_freq": 5,
    "checkpoint_at_end": true,
    "config": {
        "n_hidden_layers": [1, 9],
        "n_hidden_nodes": [2, 256]
    }
}

for key, value in some_dict.items():
    low, high = value
    tune_experiment_config[key] = tune.sample_from(lambda spec:random_powers_of_2(low, high))

def random_powers_of_2(low, high):
    low, high = np.log2((low, high))
    return 2 ** np.random.randint(int(low), int(high))

configuration = tune.Experiment(**tune_experiment_config)

trials = tune.run_experiments(configuration, verbose=False)

По какой-то причине, если для функции tune.sample_from сделано несколько вызовов, в которых разные ключи принимают случайные значения разных диапазонов, они засоряются. Как это решить? Является ли tune.function решением этой проблемы? Если да, то как его использовать?

...