运行 flow/envs/ring/lane_change_accel 时出现索引错误

问题描述

当我运行 flow/envs/ring/lane_change_accel 时,出现错误

Traceback (most recent call last):
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/tune/trial_runner.py",line 426,in _process_trial
        result = self.trial_executor.fetch_result(trial)
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/tune/ray_trial_executor.py",line 378,in fetch_result
        result = ray.get(trial_future[0],DEFAULT_GET_TIMEOUT)
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/worker.py",line 1457,in get
        raise value.as_instanceof_cause()
    ray.exceptions.RayTaskError(IndexError): ray::PPO.train() (pid=5690,ip=192.168.6.112)
      File "python/ray/_raylet.pyx",line 636,in ray._raylet.execute_task
      File "python/ray/_raylet.pyx",line 619,in ray._raylet.execute_task.function_executor
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/agents/trainer.py",line 444,in train
        raise e
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/agents/trainer.py",line 433,in train
        result = Trainable.train(self)
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/tune/trainable.py",line 176,in train
        result = self._train()
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/agents/trainer_template.py",line 129,in _train
        fetches = self.optimizer.step()
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/optimizers/multi_gpu_optimizer.py",line 140,in step
        self.num_envs_per_worker,self.train_batch_size)
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/optimizers/rollout.py",line 29,in collect_samples
        next_sample = ray_get_and_free(fut_sample)
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/utils/memory.py",line 33,in ray_get_and_free
        result = ray.get(object_ids)
    ray.exceptions.RayTaskError(IndexError): ray::RolloutWorker.sample() (pid=5766,in ray._raylet.execute_task.function_executor
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/evaluation/rollout_worker.py",line 471,in sample
        batches = [self.input_reader.next()]
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/evaluation/sampler.py",line 56,in next
        batches = [self.get_data()]
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/evaluation/sampler.py",line 99,in get_data
        item = next(self.rollout_provider)
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/evaluation/sampler.py",line 340,in _env_runner
        base_env.send_actions(actions_to_send)
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/env/base_env.py",line 332,in send_actions
        self.vector_env.vector_step(action_vector)
      File "/home/vcdc/anaconda3/envs/flow/lib/python3.7/site-packages/ray/rllib/env/vector_env.py",line 110,in vector_step
        obs,r,done,info = self.envs[i].step(actions[i])
      File "/home/vcdc/flow/flow/envs/base.py",line 364,in step
        self.apply_rl_actions(rl_actions)
      File "/home/vcdc/flow/flow/envs/base.py",line 616,in apply_rl_actions
        self._apply_rl_actions(rl_clipped)
      File "/home/vcdc/flow/flow/envs/ring/lane_change_accel.py",line 151,in _apply_rl_actions
        np.array([0] * sum(non_lane_changing_veh))
    IndexError: boolean index did not match indexed array along dimension 0; dimension is 0 but corresponding boolean dimension is 1

我不知道代码是什么(

non_lane_changing_veh = \
            [self.time_counter <=
             self.env_params.additional_params["lane_change_duration"]
             + self.k.vehicle.get_last_lc(veh_id)
             for veh_id in sorted_rl_ids]

) 表示,因为 non_lane_changed_veh 看起来不像一个整数。 谁能告诉我什么是错的,我认为代码不正确

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)