Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning OpenAI Gym:如何从自定义OpenEnvironment中访问环境注册数据(例如max_插曲_步骤)?_Machine Learning_Reinforcement Learning_Openai Gym - Fatal编程技术网

Machine learning OpenAI Gym:如何从自定义OpenEnvironment中访问环境注册数据(例如max_插曲_步骤)?

Machine learning OpenAI Gym:如何从自定义OpenEnvironment中访问环境注册数据(例如max_插曲_步骤)?,machine-learning,reinforcement-learning,openai-gym,Machine Learning,Reinforcement Learning,Openai Gym,我使用OpenAI Gym创建了一个自定义环境。我想访问在init.py 例如: 但是我如何从gym\u myenv.py访问这个呢? 如果我首先创建环境并使用env.\u max\u eposion\u步骤,我可以访问。但是,我无法从gym\u myenv.py中访问\u max\u eposion\u steps,目前唯一的方法似乎是在创建gym环境对象后的init方法之外访问它们,即使用任何其他方法,如reset()或render()或其他方法 可以使用self.spec.max\u插曲步

我使用OpenAI Gym创建了一个自定义环境。我想访问在init.py 例如:

但是我如何从gym\u myenv.py访问这个呢?
如果我首先创建环境并使用env.\u max\u eposion\u步骤,我可以访问。但是,我无法从gym\u myenv.py中访问\u max\u eposion\u steps,目前唯一的方法似乎是在创建gym环境对象后的init方法之外访问它们,即使用任何其他方法,如reset()或render()或其他方法

可以使用
self.spec.max\u插曲步骤
self.max\u插曲步骤


我不确定它是打算这样做还是一个bug。

如果您在这里看到
make()
的代码:

规范
成为其属性之前,将实例化
环境
。我认为
max_timesteps
不是环境的固有属性,其目的是让环境具有任意数量的可能
max_timesteps
,用于您可以为同一基本环境注册的各种环境ID


顺便说一句,如果您在该文件中看到第51行,您上面给出的标记将不起作用,因为该值被您传递给
max\u-scention\u steps
register()
的值覆盖。我刚刚测试过。

谢谢你的提示。我能够找到一种在代码中使用max_timesteps的方法。
from gym.envs.registration import registry, register, make, spec
register(
    id='myenv-v0',
    entry_point='gym.envs.algorithmic:myenv',
    tags={'wrapper_config.TimeLimit.max_episode_steps': 200},
    reward_threshold=25.0,
)