Skip to content
This repository has been archived by the owner on Nov 1, 2024. It is now read-only.

"TypeError: unhashable type: 'list' " when running scripts from the example folder #18

Open
tidiane-camaret opened this issue Nov 4, 2023 · 1 comment

Comments

@tidiane-camaret
Copy link

tidiane-camaret commented Nov 4, 2023

Running the following command : python3 -m examples.dehb_for_pendulum_ppo -m leads to an error on my setup :

Steps to reproduce :

conda create -n autorl-sweepers python==3.9
conda activate autorl-sweepers
pip install -e .[dehb,pb2,bgt]

python3 -m  examples.dehb_for_pendulum_ppo -m

Result :

The version_base parameter is not specified.
Please specify a compatability version level, or None.
Will assume defaults for version 1.1
  @hydra.main(config_path="configs", config_name="dqn_cartpole_pb2")
/home/ndirt/dev/automl/how-to-autorl/examples/dehb_for_pendulum_ppo.py:6: UserWarning: 
The version_base parameter is not specified.
Please specify a compatability version level, or None.
Will assume defaults for version 1.1
  @hydra.main(config_path="configs", config_name="ppo_pendulum_dehb")
Traceback (most recent call last):
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/ndirt/dev/automl/how-to-autorl/examples/dehb_for_pendulum_ppo.py", line 12, in <module>
    run_ppo_dehb()
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/hydra/main.py", line 94, in decorated_main
    _run_hydra(
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/hydra/_internal/utils.py", line 337, in _run_hydra
    search_path = create_automatic_config_search_path(
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/hydra/_internal/utils.py", line 190, in create_automatic_config_search_path
    return create_config_search_path(search_path_dir)
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/hydra/_internal/utils.py", line 203, in create_config_search_path
    search_path_plugins = Plugins.instance().discover(SearchPathPlugin)
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/hydra/core/plugins.py", line 46, in instance
    ret = Singleton.instance(Plugins, *args, **kwargs)
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/hydra/core/singleton.py", line 17, in instance
    return cls(*args, **kwargs)
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/hydra/core/singleton.py", line 13, in __call__
    cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/hydra/core/plugins.py", line 54, in __init__
    self._initialize()
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/hydra/core/plugins.py", line 71, in _initialize
    scanned_plugins, self.stats = self._scan_all_plugins(modules=top_level)
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/hydra/core/plugins.py", line 188, in _scan_all_plugins
    loaded_mod = m.load_module(modname)
  File "<frozen importlib._bootstrap_external>", line 469, in _check_name_wrapper
  File "<frozen importlib._bootstrap_external>", line 969, in load_module
  File "<frozen importlib._bootstrap_external>", line 794, in load_module
  File "<frozen importlib._bootstrap>", line 274, in _load_module_shim
  File "<frozen importlib._bootstrap>", line 711, in _load
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/ndirt/dev/automl/how-to-autorl/hydra_plugins/hydra_dehb_sweeper/dehb_sweeper_backend.py", line 18, in <module>
    from hydra_plugins.hydra_dehb_sweeper.hydra_dehb import HydraDEHB
  File "/home/ndirt/dev/automl/how-to-autorl/hydra_plugins/hydra_dehb_sweeper/hydra_dehb.py", line 12, in <module>
    from dehb.optimizers import dehb
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/dehb/__init__.py", line 2, in <module>
    from .optimizers import DE, AsyncDE
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/dehb/optimizers/__init__.py", line 1, in <module>
    from .de import DE, AsyncDE
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/dehb/optimizers/de.py", line 6, in <module>
    from distributed import Client
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/distributed/__init__.py", line 23, in <module>
    from distributed.actor import Actor, ActorFuture, BaseActorFuture
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/distributed/actor.py", line 13, in <module>
    from distributed.client import Future
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/distributed/client.py", line 117, in <module>
    from distributed.worker import get_client, get_worker, secede
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/distributed/worker.py", line 120, in <module>
    from distributed.worker_memory import (
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/site-packages/distributed/worker_memory.py", line 56, in <module>
    WorkerDataParameter: TypeAlias = Union[
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/typing.py", line 243, in inner
    return func(*args, **kwds)
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/typing.py", line 316, in __getitem__
    return self._getitem(self, parameters)
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/typing.py", line 421, in Union
    parameters = _remove_dups_flatten(parameters)
  File "/home/ndirt/miniconda3/envs/autorl-sweepers/lib/python3.9/typing.py", line 215, in _remove_dups_flatten
    all_params = set(params)
TypeError: unhashable type: 'list'

Setup : Ubuntu 22.04.3 LTS

@tidiane-camaret
Copy link
Author

tidiane-camaret commented Nov 4, 2023

UPDATE : seems like the issue is related to python versions 3.9.0 and 3.9.1.
Examples run well with python==3.9.2
see related issue with dask
Suggested fix :
precise python==3.9.2 during the creation of the conda env

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant