Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RuntimeError: Tune is not installed, so get_tune_resources is not supported #310

Open
NumberChiffre opened this issue May 13, 2024 · 0 comments

Comments

@NumberChiffre
Copy link

The example for Hyperparameter Tuning with the following code produced the above error:

Error:

RuntimeError: Tune is not installed, so `get_tune_resources` is not supported. You can install Ray Tune via `pip install ray[tune]`.
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
File <command-1840255955610235>:44
     28 config = {
     29     "tree_method": "approx",
     30     "objective": "binary:logistic",
   (...)
     34     "max_depth": tune.randint(1, 9)
     35 }
     37 # Make sure to use the `get_tune_resources` method to set the `resources_per_trial`
     38 analysis = tune.run(
     39     train_model,
     40     config=config,
     41     metric="train-error",
     42     mode="min",
     43     num_samples=4,
---> 44     resources_per_trial=ray_params.get_tune_resources())
     45 print("Best hyperparameters", analysis.best_config)

File /local_disk0/.ephemeral_nfs/envs/pythonEnv-a7c4ad70-7964-4bea-86d4-19be06ce626e/lib/python3.9/site-packages/xgboost_ray/main.py:484, in RayParams.get_tune_resources(self)
    480 if self.cpus_per_actor <= 0 or self.num_actors <= 0:
    481     raise ValueError(
    482         "num_actors and cpus_per_actor both must be " "greater than 0."
    483     )
--> 484 return _get_tune_resources(
    485     num_actors=self.num_actors,
    486     cpus_per_actor=self.cpus_per_actor,
    487     gpus_per_actor=max(0, self.gpus_per_actor),
    488     resources_per_actor=self.resources_per_actor,
    489     placement_options=self.placement_options,
    490 )

File /local_disk0/.ephemeral_nfs/envs/pythonEnv-a7c4ad70-7964-4bea-86d4-19be06ce626e/lib/python3.9/site-packages/xgboost_ray/tune.py:180, in _get_tune_resources(num_actors, cpus_per_actor, gpus_per_actor, resources_per_actor, placement_options)
    178     return placement_group_factory
    179 else:
--> 180     raise RuntimeError(
    181         "Tune is not installed, so `get_tune_resources` is "
    182         "not supported. You can install Ray Tune via `pip "
    183         "install ray[tune]`."
    184     )

RuntimeError: Tune is not installed, so `get_tune_resources` is not supported. You can install Ray Tune via `pip install ray[tune]`.

Code

from xgboost_ray import RayDMatrix, RayParams, train
from sklearn.datasets import load_breast_cancer

num_actors = 4
num_cpus_per_actor = 1

ray_params = RayParams(
    num_actors=num_actors,
    cpus_per_actor=num_cpus_per_actor)

def train_model(config):
    train_x, train_y = load_breast_cancer(return_X_y=True)
    train_set = RayDMatrix(train_x, train_y)

    evals_result = {}
    bst = train(
        params=config,
        dtrain=train_set,
        evals_result=evals_result,
        evals=[(train_set, "train")],
        verbose_eval=False,
        ray_params=ray_params)
    bst.save_model("model.xgb")

from ray import tune

# Specify the hyperparameter search space.
config = {
    "tree_method": "approx",
    "objective": "binary:logistic",
    "eval_metric": ["logloss", "error"],
    "eta": tune.loguniform(1e-4, 1e-1),
    "subsample": tune.uniform(0.5, 1.0),
    "max_depth": tune.randint(1, 9)
}

# Make sure to use the `get_tune_resources` method to set the `resources_per_trial`
analysis = tune.run(
    train_model,
    config=config,
    metric="train-error",
    mode="min",
    num_samples=4,
    resources_per_trial=ray_params.get_tune_resources())
print("Best hyperparameters", analysis.best_config)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant