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() # 关闭环境
本文详细介绍了如何在Gym库中创建并注册自定义环境,包括定位gym库、编辑环境文件、修改__init__.py及注册环境等步骤,以便在个人项目中使用。

1万+

被折叠的 条评论
为什么被折叠?



