簡體   English   中英

ValueError:RolloutWorker 沒有 input_reader object

[英]ValueError: RolloutWorker has no input_reader object

我正在使用 RLlib,我正在嘗試在 Python 3.9.6 上使用 Ray v1.10 在多代理環境中運行 APEX_DDPG。 我收到以下錯誤:

raise ValueError("RolloutWorker has no input_reader object: " ValueError。RolloutWorker 沒有 input_reader object。無法調用 sample()。您可以嘗試將 create_env_on_driver 設置為 True。

我在文檔中找到了錯誤的來源,在 RolloutWorker class 定義中:

if self.fake_sampler and self.last_batch is not None:\
   return self.last_batch\
elif self.input_reader is None:\
   raise ValueError("RolloutWorker has no input_reader object! "\
   "Cannot call sample(). You can try setting "
   "create_env_on_driver to True.")

但我不知道如何解決它,因為我對 RLlib 有點陌生。

我也是 Ray 和 RLlib 的新手。 我今天也遇到這個錯誤。 我的問題是我忘記將我的env添加到config 在使用ApexDDPGTrainer(config=config)或使用ray.tune(config=config) config ,您可以嘗試將您的環境添加到您的配置中

以下是ray 官方文檔中的示例:

import gym, ray
from ray.rllib.agents import ppo

class MyEnv(gym.Env):
    def __init__(self, env_config):
        self.action_space = <gym.Space>
        self.observation_space = <gym.Space>
    def reset(self):
        return <obs>
    def step(self, action):
        return <obs>, <reward: float>, <done: bool>, <info: dict>

ray.init()
trainer = ppo.PPOTrainer(env=MyEnv, config={
    "env_config": {},  # config to pass to env class
})

您也可以先注冊您的自定義環境:

from ray.tune.registry import register_env

def env_creator(env_config):
    return MyEnv(...)  # return an env instance

register_env("my_env", env_creator)
trainer = ppo.PPOTrainer(env="my_env")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM