深度剖析 OpenAI Gym(持续更新)

1 废话

最近用到 OpenAI Gym,相关的介绍比较少,为了用着方便点,翻了翻底层,下边记录下我的理解,包括两部分,一个是gym 的结构和说明,还有一个是在执行我们程序时,底层程序的执行顺序。

注意:我只介绍我知道的部分,随着理解的深入介绍的会更多,个人理解可能有误,若有问题请评论,谢谢。

OpenAI 的官网为:https://gym.openai.com/

github为:https://github.com/openai/gym

一些仿真环境的介绍:https://github.com/openai/gym/wiki

2 gym 结构和说明

gym文件夹下包括4个文件和4个程序,如下图所示,envs包括各种仿真环境,spaces包括各种空间数据结构的定义,utils是一些通用程序,wrappers不知道。4个程序中,core.py 是核心程序包括很多基类,error.py是错误管理程序,logger.py控制打印信息,version.py只有一句话,记录当前版本。

gym文件结构
gym文件结构

下面先分别介绍core、error、logger程序,再介绍文件夹。

2.1 core.py

包括6个类,Env,GoalEnv,Wrapper,Observation/Reward/Action Wrapper和一个函数deprecated_warn_once,如下图所示。先说下我看过的Env

core.py
core.py 内部程序结构

(1)Env(Object)

所有环境类的基类,也就是所有环境类都是对此类的继承,包括了我们最常用的step,reset,render等方法。

(2)Wrapper(Env)

对Env实现了一层包裹,作用暂时不清楚。

(3)deprecated_warn_once(text)

只是打印警告信息一次。

2.2 error.py

包括各种错误的类的定义,目前还没怎么研究。

2.3 logger.py

控制打印的信息的类型,如debug、info、warn和error,根据的级别,来判断各种类型的信息是否应该被打印,直接看程序就明白了,如下图:

logger.py

2.4 Envs

文件结构如下图所示,包括一个程序 registration.py 和很多环境的文件,而这个__init__.py也是有很多内容的。

2.4.1 registration.py

这个程序中除了最后控制版本兼容性的一个函数不一定用到,别的函数或类都是一定要用到的,程序的结构如下图所示。

registration.py

这里先简单介绍,具体的作用可能在介绍底层程序执行循序的时候才能真正理解。

(1)load(name)

这里的 name 是的格式为路径:类名,如最常用的 CartPole 名称为: gym.envs.classic_control:CartPoleEnv。作用为根据路径和类名返回这个类。

(2)EnvSpec(object)

存储环境类的信息,包括环境名(_env_name)、环境类的路径和类名(_entry_point),还有最大时间步(max_episode_steps),其他没介绍的变量我目前还不知道有什么用。

比较重要的有一个make函数,在make之前,只保存相关信息,而make函数就是到环境的路径下加载对应的类并返回。

(3)EnvRegistry(object)和 registry

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值