[Python] ray.tune: Tracked actor is not managed

Discussão em 'Python' iniciado por Stack, Maio 2, 2025.

  1. Stack

    Stack Membro Participativo

    from ray import tune
    from ray.tune.search.optuna import OptunaSearch
    from ray.tune.integration.pytorch_lightning import TuneReportCheckpointCallback
    from pytorch_lightning import Trainer
    from pytorch_lightning.callbacks import EarlyStopping
    from data_module import DataModule
    from fcnn_regressor import FCNNRegressor
    from typing import Any

    dm = DataModule(X_train, X_test, y_train, y_test,
    batch_size=2028)

    def train_model(config: dict[str, Any]) -> None:
    model = FCNNRegressor(
    input_dim=X_train.shape[1],
    hidden_dim1=config["hidden_dim1"],
    hidden_dim2=config["hidden_dim2"],
    dropout_prob=config["dropout_prob"],
    lr=config["lr"],
    weight_decay=config["weight_decay"],
    )

    trainer = Trainer(
    max_epochs=100,
    callbacks=[
    EarlyStopping(monitor="val_loss", patience=5, mode="min"),
    TuneReportCheckpointCallback({"val_loss": "val_loss"},
    on="validation_end")
    ],
    )
    trainer.fit(model, datamodule=dm)

    search_space = {
    "hidden_dim1": tune.randint(64, 257),
    "hidden_dim2": tune.sample_from(
    lambda cfg: np.random.randint(16, cfg["hidden_dim1"] // 2 + 1)),
    "dropout_prob": tune.uniform(0.1, 0.4),
    "lr": tune.loguniform(1e-5, 1e-2),
    "weight_decay": tune.loguniform(1e-6, 1e-2),
    }

    optuna = OptunaSearch(metric="val_loss", mode="min")

    tuner = tune.Tuner(
    train_model,
    param_space=search_space,
    tune_config=tune.TuneConfig(num_samples=20, search_alg=optuna),
    )

    results = tuner.fit()
    print(results.get_best_result("val_loss", "min").metrics)


    Why there is the following error:

    ---------------------------------------------------------------------------
    ValueError Traceback (most recent call last)
    File ~/pyenvs/base/lib/python3.12/site-packages/ray/tune/tune.py:994, in run(run_or_experiment, name, metric, mode, stop, time_budget_s, config, resources_per_trial, num_samples, storage_path, storage_filesystem, search_alg, scheduler, checkpoint_config, verbose, progress_reporter, log_to_file, trial_name_creator, trial_dirname_creator, sync_config, export_formats, max_failures, fail_fast, restore, resume, resume_config, reuse_actors, raise_on_failed_trial, callbacks, max_concurrent_trials, keep_checkpoints_num, checkpoint_score_attr, checkpoint_freq, checkpoint_at_end, chdir_to_trial_dir, local_dir, _remote, _remote_string_queue, _entrypoint)
    993 while not runner.is_finished() and not experiment_interrupted_event.is_set():
    --> 994 runner.step()
    995 if has_verbosity(Verbosity.V1_EXPERIMENT):

    File ~/pyenvs/base/lib/python3.12/site-packages/ray/tune/execution/tune_controller.py:685, in TuneController.step(self)
    684 # Handle one event
    --> 685 if not self._actor_manager.next(timeout=0.1):
    686 # If there are no actors running, warn about potentially
    687 # insufficient resources
    688 if not self._actor_manager.num_live_actors:

    File ~/pyenvs/base/lib/python3.12/site-packages/ray/air/execution/_internal/actor_manager.py:225, in RayActorManager.next(self, timeout)
    224 else:
    --> 225 self._handle_ready_resource_future()
    226 # Ready resource futures don't count as one event as they don't trigger
    227 # any callbacks. So we repeat until we hit anything that is not a resource
    228 # future.

    File ~/pyenvs/base/lib/python3.12/site-packages/ray/air/execution/_internal/actor_manager.py:310, in RayActorManager._handle_ready_resource_future(self)
    309 # We handle resource futures one by one, so only try to start 1 actor at a time
    --> 310 self._try_start_actors(max_actors=1)
    ...
    732 self._pending_actors_to_enqueued_actor_tasks[tracked_actor].append(
    733 (tracked_actor_task, method_name, args, kwargs)
    734 )

    ValueError: Tracked actor is not managed by this event manager: <TrackedActor 34183756754259754017506083767126328506>
    Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...


    If it necessary, you can check code of modules:


    I tried to use ray.put and put object DataModule into train_model function. First way lead to error related to "Invalid type of object refs, <class'numpy.ndarray'>, is given" or "Invalid type of object refs, <class 'torch.Tensor'>, is given". Second way didn't resolve the issue

    Continue reading...

Compartilhe esta Página