gym.make('CartPole-v0') 返回什么以及它是如何工作的?

Die*_*ana 6 python openai-gym

我知道env=gym.make('CartPole-v0')是类型gym.wrappers.time_limit.TimeLimit

我还知道 env 是 cartpole.py 类的“实例”。我的问题是,如何通过仅提供名称“CartPole-v0”来访问 cartpole.py 类。该流程在哪里实施?我试图在 site-package 文件夹中的gym 文件夹中查找它,但我无法找到/理解该过程发生的位置。我不确定我上面的陈述是否准确,我问这个问题是为了了解gym.make('CartPole-v0') 执行背后的过程以及与之相关的任何主题,以便了解有关编码的更多信息一般来说。我的猜测是我误解了一些东西

Joy*_*pra 4

https://github.com/openai/gym/blob/e689f93a425d97489e590bba0a7d4518de0dcc03/gym/envs/__init__.py#L53-L58

正如您在gym.envs模块的__init__.py中的这一行中看到的,该环境已注册到所有其他环境。入口点告诉gym当要使用这个版本的环境时要使用什么python类。除此之外,您还可以将其他关键字参数传递给环境构造函数。

gym.make 的核心调用与环境 id 相对应的构造函数,如这些行所示,以及一些附加步骤。

https://github.com/openai/gym/blob/e689f93a425d97489e590bba0a7d4518de0dcc03/gym/envs/registration.py#L85-L86