1. 找到本地gym库地址下的envs目录,可能是:python3.6/site-packages/gym/envs。

    envs下面有多个目录,选择一个你的环境所属的目录(不是很重要,选择相近类别即可)

2. 假如我们选择的是classic_control目录,进入该目录。

3. 把自己编写的环境文件(比如myenv.py)拷贝至该目录。

4. 打开该目录下的__init__.py文件,加入如下语句:

from gym.envs.classic_control.myenv import LargeGridWorld

from gym.envs.classic_control.myenv import SimpleGridWorld

from gym.envs.classic_control.myenv import WindyGridWorld

5. 返回至envs目录下,打开该目录下的__init__.py文件,加入如下语句完成环境的注册:

register(

id='LargeGridWorld-v0',

entry_point='gym.envs.classic_control:LargeGridWorld',

max_episode_steps=999,

)
register(

id='SimpleGridWorld-v0',

entry_point='gym.envs.classic_control:SimpleGridWorld',

max_episode_steps=999,

)
register(

id='WindyGridWorld-v0',

entry_point='gym.envs.classic_control:WindyGridWorld',

max_episode_steps=999,

)

其中每一个注册方法内的id好像一定要带上版本号,也就是id后半部分的”-v0”不能省。

6. 完成了上述工作后,在自己的代码里就可以直接使用下面的语句来构建相应的环境对象了:

id = "SimpleGridWorld-v0"	# 设置环境id

env = gym.make(id)	# 构建环境对象

env.reset()	# 重置环境

env.render()	# 绘制环境

Input("press any key to continue...")

env.close()	# 关闭环境

 

 

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐