Machine learning OpenAI Gym:如何从自定义OpenEnvironment中访问环境注册数据(例如max_插曲_步骤)?
我使用OpenAI Gym创建了一个自定义环境。我想访问在init.py 例如: 但是我如何从gym\u myenv.py访问这个呢?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插曲步
如果我首先创建环境并使用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,
)