Hi @mannyv
After training, at the end,
2023-04-08 17:00:58,513 INFO tune.py:798 -- Total run time: 61.07 seconds (60.93 seconds for the tuning loop).
Your training finished.
Best available checkpoint for each trial:
/home/user/ray_results/cartpole-ppo/PPO_custom_cartpole_env.CustomCartPole_b0e39
_00000_0_2023-04-08_16-59-57/checkpoint_000007
You can now evaluate your trained algorithm from any checkpoint, e.g. by running:
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ rllib evaluate โ
โ /home/user/ray_results/cartpole-ppo/PPO_custom_cartpole_env.CustomCartPole_b0e โ
โ 39_00000_0_2023-04-08_16-59-57/checkpoint_000007 --algo PPO โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Then If I execute the command
$ rllib evaluate /home/user/ray_results/cartpole-ppo/PPO_custom_cartpole_env.CustomCartPole_b0e39_00000_0_2023-04-08_16-59-57/checkpoint_000007 --algo PPO
The trimmed output is as shown below
2023-04-08 17:02:49,336 INFO worker.py:1544 -- Started a local Ray instance. View the dashboard at 127.0.0.1:8265
2023-04-08 17:02:50,930 WARNING deprecation.py:50 -- DeprecationWarning: `algo = Algorithm(env='custom_cartpole_env.CustomCartPole', ...)` has been deprecated. Use `algo = AlgorithmConfig().environment('custom_cartpole_env.CustomCartPole').build()` instead. This will raise an error in the future!
2023-04-08 17:02:50,948 INFO algorithm.py:506 -- Current log_level is WARN. For more information, set 'log_level': 'INFO' / 'DEBUG' or use the -v and -vv flags.
(pid=73211) *** SIGSEGV received at time=1680953574 on cpu 47 ***
(pid=73211) PC: @ 0x7fb0bc3d95a0 (unknown) _dl_allocate_tls_init
(pid=73211) @ 0x7fb0bc1ba630 1028800600 (unknown)
(pid=73211) @ ... and at least 1 more frames
(pid=73211) [2023-04-08 17:02:54,167 E 73211 73229] logging.cc:361: *** SIGSEGV received at time=1680953574 on cpu 47 ***
(pid=73211) [2023-04-08 17:02:54,167 E 73211 73229] logging.cc:361: PC: @ 0x7fb0bc3d95a0 (unknown) _dl_allocate_tls_init
(pid=73211) [2023-04-08 17:02:54,167 E 73211 73229] logging.cc:361: @ 0x7fb0bc1ba630 1028800600 (unknown)
(pid=73211) [2023-04-08 17:02:54,167 E 73211 73229] logging.cc:361: @ ... and at least 1 more frames
(pid=73211) Fatal Python error: Segmentation fault
(pid=73211)
2023-04-08 17:02:57,276 WARNING worker.py:1866 -- A worker died or was killed while executing a task by an unexpected system error. To troubleshoot the problem, check the logs for the dead worker. RayTask ID: ffffffffffffffffabc1076057fbabe7e9d2b94301000000 Worker ID: 13ec98e591e562f946cb3abfa2066a0ec2fcfda8be8f617d22b03bd2 Node ID: ea4bb7d4fce2a98ada712073d305ecaf9739df225853965315761bd8 Worker IP address: xxx.xx.xx.xx Worker port: 38306 Worker PID: 73211 Worker exit type: SYSTEM_ERROR Worker exit detail: Worker unexpectedly exits with a connection error code 2. End of file. There are some potential root causes. (1) The process is killed by SIGKILL by OOM killer due to high memory usage. (2) ray stop --force is called. (3) The worker is crashed unexpectedly due to SIGSEGV or other unexpected errors.
(RolloutWorker pid=74331) 2023-04-08 17:03:02,872 WARNING env.py:156 -- Your env doesn't have a .spec.max_episode_steps attribute. Your horizon will default to infinity, and your environment will not be reset.
(RolloutWorker pid=74331) 2023-04-08 17:03:02,872 WARNING env.py:166 -- Your env reset() method appears to take 'seed' or 'return_info' arguments. Note that these are not yet supported in RLlib. Seeding will take place using 'env.seed()' and the info dict will not be returned from reset.
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Traceback (most recent call last) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ /home/user/anaconda3/envs/game/lib/python3.9/site-packages/ray/rllib/algorithms/algorithm.p โ
โ y:2219 in env_creator_from_classpath โ
โ โ
โ 2216 โ โ โ โ โ
โ 2217 โ โ โ โ def env_creator_from_classpath(env_context): โ
โ 2218 โ โ โ โ โ try: โ
โ โฑ 2219 โ โ โ โ โ โ env_obj = from_config(env_specifier, env_context) โ
โ 2220 โ โ โ โ โ except ValueError: โ
โ 2221 โ โ โ โ โ โ raise EnvError( โ
โ 2222 โ โ โ โ โ โ โ ERR_MSG_INVALID_ENV_DESCRIPTOR.format(env_specifier) โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ env_context = {} โ โ
โ โ env_specifier = 'custom_cartpole_env.CustomCartPole' โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/user/anaconda3/envs/game/lib/python3.9/site-packages/ray/rllib/utils/from_config.py:1 โ
โ 65 in from_config โ
โ โ
โ 162 โ โ โ โ if isinstance(cls, str): โ
โ 163 โ โ โ โ โ # Module found, but doesn't have the specified โ
โ 164 โ โ โ โ โ # c'tor/function. โ
โ โฑ 165 โ โ โ โ โ raise ValueError( โ
โ 166 โ โ โ โ โ โ f"Full classpath specifier ({type_}) must be a valid " โ
โ 167 โ โ โ โ โ โ "full [module].[class] string! E.g.: " โ
โ 168 โ โ โ โ โ โ "`my.cool.module.MyCoolClass`." โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ cls = 'custom_cartpole_env.CustomCartPole' โ โ
โ โ config = {} โ โ
โ โ constructor = None โ โ
โ โ ctor_args = [] โ โ
โ โ ctor_kwargs = {} โ โ
โ โ function_name = 'CustomCartPole' โ โ
โ โ kwargs = {} โ โ
โ โ module_name = 'custom_cartpole_env' โ โ
โ โ obj = 'custom_cartpole_env.CustomCartPole' โ โ
โ โ type_ = 'custom_cartpole_env.CustomCartPole' โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
ValueError: Full classpath specifier (custom_cartpole_env.CustomCartPole) must be a valid full [module].[class] string! E.g.: `my.cool.module.MyCoolClass`.
During handling of the above exception, another exception occurred:
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Traceback (most recent call last) ................................................................................
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/user/anaconda3/envs/game/lib/python3.9/site-packages/ray/rllib/evaluation/worker_set. โ
โ py:260 in _setup โ
โ โ
โ 257 โ โ โ
โ 258 โ โ # Create a local worker, if needed. โ
โ 259 โ โ if local_worker: โ
โ โฑ 260 โ โ โ self._local_worker = self._make_worker( โ
โ 261 โ โ โ โ cls=RolloutWorker, โ
โ 262 โ โ โ โ env_creator=self._env_creator, โ
โ 263 โ โ โ โ validate_env=validate_env, โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ config = <ray.rllib.algorithms.ppo.ppo.PPOConfig object at 0x7f7182e48b20> โ โ
โ โ local_tf_session_args = { โ โ
โ โ โ 'intra_op_parallelism_threads': 8, โ โ
โ โ โ 'inter_op_parallelism_threads': 8, โ โ
โ โ โ 'gpu_options': {'allow_growth': True}, โ โ
โ โ โ 'log_device_placement': False, โ โ
โ โ โ 'device_count': {'CPU': 1}, โ โ
โ โ โ 'allow_soft_placement': True โ โ
โ โ } โ โ
โ โ local_worker = True โ โ
โ โ num_workers = 1 โ โ
โ โ self = <ray.rllib.evaluation.worker_set.WorkerSet object at 0x7f7182cd8e50> โ โ
โ โ spaces = None โ โ
โ โ validate_env = <function Algorithm.validate_env at 0x7f7182f6d940> โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/user/anaconda3/envs/game/lib/python3.9/site-packages/ray/rllib/evaluation/worker_set. โ
โ py:946 in _make_worker โ
โ โ
โ 943 โ โ โ Dict[PolicyID, Tuple[gym.spaces.Space, gym.spaces.Space]] โ
โ 944 โ โ ] = None, โ
โ 945 โ ) -> Union[RolloutWorker, ActorHandle]: โ
โ โฑ 946 โ โ worker = cls( โ
โ 947 โ โ โ env_creator=env_creator, โ
โ 948 โ โ โ validate_env=validate_env, โ
โ 949 โ โ โ default_policy_class=self._policy_class, โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ cls = <class 'ray.rllib.evaluation.rollout_worker.RolloutWorker'> โ โ
โ โ config = <ray.rllib.algorithms.ppo.ppo.PPOConfig object at 0x7f7182bfdd00> โ โ
โ โ env_creator = <function โ โ
โ โ Algorithm._get_env_id_and_creator.<locals>.env_creator_from_classpath at โ โ
โ โ 0x7f7182ce53a0> โ โ
โ โ num_workers = 1 โ โ
โ โ recreated_worker = False โ โ
โ โ self = <ray.rllib.evaluation.worker_set.WorkerSet object at 0x7f7182cd8e50> โ โ
โ โ spaces = None โ โ
โ โ validate_env = <function Algorithm.validate_env at 0x7f7182f6d940> โ โ
โ โ worker_index = 0 โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/user/anaconda3/envs/game/lib/python3.9/site-packages/ray/rllib/evaluation/rollout_wor โ
โ ker.py:607 in __init__ โ
โ โ
โ 604 โ โ โ and not self.config.create_env_on_local_worker โ
โ 605 โ โ ): โ
โ 606 โ โ โ # Run the `env_creator` function passing the EnvContext. โ
โ โฑ 607 โ โ โ self.env = env_creator(copy.deepcopy(self.env_context)) โ
โ 608 โ โ โ
โ 609 โ โ clip_rewards = self.config.clip_rewards โ
โ 610 โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ AlgorithmConfig = <class โ โ
โ โ 'ray.rllib.algorithms.algorithm_config.AlgorithmConfigโฆ โ โ
โ โ batch_mode = -1 โ โ
โ โ callbacks = -1 โ โ
โ โ clip_actions = -1 โ โ
โ โ clip_rewards = -1 โ โ
โ โ compress_observations = -1 โ โ
โ โ config = <ray.rllib.algorithms.ppo.ppo.PPOConfig object at โ โ
โ โ 0x7f7182bfdd00> โ โ
โ โ configured_rollout_fragment_length = 4000 โ โ
โ โ count_steps_by = -1 โ โ
โ โ dataset_shards = None โ โ
โ โ default_policy_class = <class โ โ
โ โ 'ray.rllib.algorithms.ppo.ppo_torch_policy.PPOTorchPolโฆ โ โ
โ โ disable_env_checking = -1 โ โ
โ โ env_config = -1 โ โ
โ โ env_context = {} โ โ
โ โ env_creator = <function โ โ
โ โ Algorithm._get_env_id_and_creator.<locals>.env_creatorโฆ โ โ
โ โ at 0x7f7182ce53a0> โ โ
โ โ episode_horizon = -1 โ โ
โ โ extra_python_environs = -1 โ โ
โ โ fake_sampler = -1 โ โ
โ โ gen_rollouts = <function RolloutWorker.__init__.<locals>.gen_rollouts โ โ
โ โ at 0x7f7182c57e50> โ โ
โ โ input_creator = -1 โ โ
โ โ log_dir = '/home/user/ray_results/PPO_custom_cartpole_env.Cโฆ โ โ
โ โ log_level = -1 โ โ
โ โ model_config = -1 โ โ
โ โ no_done_at_end = -1 โ โ
โ โ normalize_actions = -1 โ โ
โ โ num_envs = -1 โ โ
โ โ num_workers = 1 โ โ
โ โ observation_fn = -1 โ โ
โ โ output_creator = -1 โ โ
โ โ policies_to_train = -1 โ โ
โ โ policy = -1 โ โ
โ โ policy_config = -1 โ โ
โ โ policy_mapping_fn = -1 โ โ
โ โ policy_spec = -1 โ โ
โ โ preprocessor_pref = -1 โ โ
โ โ recreated_worker = False โ โ
โ โ remote_env_batch_wait_ms = -1 โ โ
โ โ remote_worker_envs = -1 โ โ
โ โ rollout_fragment_length = -1 โ โ
โ โ sample_async = -1 โ โ
โ โ seed = -1 โ โ
โ โ self = <ray.rllib.evaluation.rollout_worker.RolloutWorker โ โ
โ โ object at 0x7f7182bfdd30> โ โ
โ โ soft_horizon = -1 โ โ
โ โ spaces = None โ โ
โ โ tf_session_creator = -1 โ โ
โ โ validate_env = <function Algorithm.validate_env at 0x7f7182f6d940> โ โ
โ โ worker_index = 0 โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โ โ
โ /home/user/anaconda3/envs/game/lib/python3.9/site-packages/ray/rllib/algorithms/algorithm.p โ
โ y:2221 in env_creator_from_classpath โ
โ โ
โ 2218 โ โ โ โ โ try: โ
โ 2219 โ โ โ โ โ โ env_obj = from_config(env_specifier, env_context) โ
โ 2220 โ โ โ โ โ except ValueError: โ
โ โฑ 2221 โ โ โ โ โ โ raise EnvError( โ
โ 2222 โ โ โ โ โ โ โ ERR_MSG_INVALID_ENV_DESCRIPTOR.format(env_specifier) โ
โ 2223 โ โ โ โ โ โ ) โ
โ 2224 โ โ โ โ โ return env_obj โ
โ โ
โ โญโโโโโโโโโโโโโโโโโโโโโโโ locals โโโโโโโโโโโโโโโโโโโโโโโโฎ โ
โ โ env_context = {} โ โ
โ โ env_specifier = 'custom_cartpole_env.CustomCartPole' โ โ
โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
EnvError: The env string you provided ('custom_cartpole_env.CustomCartPole') is:
a) Not a supported/installed environment.
b) Not a tune-registered environment creator.
c) Not a valid env class string.
Try one of the following:
a) For Atari support: `pip install gym[atari] autorom[accept-rom-license]`.
For VizDoom support: Install VizDoom
(https://github.com/mwydmuch/ViZDoom/blob/master/doc/Building.md) and
`pip install vizdoomgym`.
For PyBullet support: `pip install pybullet`.
b) To register your custom env, do `from ray import tune;
tune.register('[name]', lambda cfg: [return env obj from here using cfg])`.
Then in your config, do `config['env'] = [name]`.
c) Make sure you provide a fully qualified classpath, e.g.:
`ray.rllib.examples.env.repeat_after_me_env.RepeatAfterMeEnv`