ray.tune.Tuner#

class ray.tune.Tuner(trainable: str | Callable | Type[Trainable] | BaseTrainer | None = None, *, param_space: Dict[str, Any] | None = None, tune_config: TuneConfig | None = None, run_config: RunConfig | None = None, _tuner_kwargs: Dict | None = None, _tuner_internal: TunerInternal | None = None, _entrypoint: AirEntrypoint = AirEntrypoint.TUNER)[源代码]#

基类:object

Tuner 是使用 Ray Tune 启动超参数调优任务的推荐方式。

参数:
  • trainable – 可调优的训练对象。

  • param_space – 调优任务的搜索空间。需要注意的是,预处理器和数据集都可以在这里进行调优。

  • tune_config – 调整算法特定的配置。更多信息请参考 ray.tune.tune_config.TuneConfig。

  • run_config – 特定于个别试验的运行时配置。如果传递了此配置,它将覆盖传递给 Trainer 的运行配置(如果适用)。更多信息请参考 ray.train.RunConfig。

使用模式:

from sklearn.datasets import load_breast_cancer

from ray import tune
from ray.data import from_pandas
from ray.train import RunConfig, ScalingConfig
from ray.train.xgboost import XGBoostTrainer
from ray.tune.tuner import Tuner

def get_dataset():
    data_raw = load_breast_cancer(as_frame=True)
    dataset_df = data_raw["data"]
    dataset_df["target"] = data_raw["target"]
    dataset = from_pandas(dataset_df)
    return dataset

trainer = XGBoostTrainer(
    label_column="target",
    params={},
    datasets={"train": get_dataset()},
)

param_space = {
    "scaling_config": ScalingConfig(
        num_workers=tune.grid_search([2, 4]),
        resources_per_worker={
            "CPU": tune.grid_search([1, 2]),
        },
    ),
    # You can even grid search various datasets in Tune.
    # "datasets": {
    #     "train": tune.grid_search(
    #         [ds1, ds2]
    #     ),
    # },
    "params": {
        "objective": "binary:logistic",
        "tree_method": "approx",
        "eval_metric": ["logloss", "error"],
        "eta": tune.loguniform(1e-4, 1e-1),
        "subsample": tune.uniform(0.5, 1.0),
        "max_depth": tune.randint(1, 9),
    },
}
tuner = Tuner(trainable=trainer, param_space=param_space,
    run_config=RunConfig(name="my_tune_run"))
results = tuner.fit()

要重试失败的调优运行,您可以执行以下操作

tuner = Tuner.restore(results.experiment_path, trainable=trainer)
tuner.fit()

results.experiment_path 可以从 ResultGrid 对象 中获取。它也可以在第一次运行的日志输出中轻松看到。

PublicAPI (测试版): 此API目前处于测试阶段,在成为稳定版本之前可能会发生变化。

方法

__init__

配置并构建一个调优运行。

can_restore

检查给定目录是否包含可恢复的 Tune 实验。

fit

执行配置的超参数调优任务并返回结果。

get_results

获取超参数调优运行的结果。

restore

在之前的运行失败后恢复调谐器。