如何向本地gym库添加自己编写的环境
1. 找到本地gym库地址下的envs目录(对应的环境下的),可能是:python3.5/site-packages/gym/envs。envs下面有多个目录,选择一个你的环境所属的目录(不是很重要,选择相近类别即可)
2. 假如我们选择的是classic_control目录,进入该目录
3. 把自己编写的环境文件(比如gridworld.py)拷贝至该目录
4. 打开该目录下的__init__.py文件,加入如下语句:
from gym.envs.classic_control.gridworld import LargeGridWorldfrom gym.envs.classic_control.gridworld import SimpleGridWorldfrom gym.envs.classic_control.gridworld import WindyGridWorldfrom gym.envs.classic_control.gridworld import RandomWalkfrom gym.envs.classic_control.gridworld import CliffWalkfrom gym.envs.classic_control.gridworld import SkullAndTreasure
5. 返回至envs目录下,打开该目录下的__init__.py文件,加入如下语句完成环境的注册:
其中每一个注册方法内的id好像一定要带上版本号,也就是id后半部分的”-v0”不能省。
register(id='SimpleGridWorld-v0',entry_point='gym.envs.classic_control:SimpleGridWorld',max_episode_steps=999,)register(id='CliffWalk-v0',entry_point='gym.envs.classic_control:CliffWalk',max_episode_steps=999,)register(id='WindyGridWorld-v0',entry_point='gym.envs.classic_control:WindyGridWorld',max_episode_steps=999,)register(id='RandomWalk-v0',entry_point='gym.envs.classic_control:RandomWalk',max_episode_steps=999,)register(id='LargeGridWorld-v0',entry_point='gym.envs.classic_control:LargeGridWorld',max_episode_steps=999,)register(id='SkullAndTreasure-v0',entry_point='gym.envs.classic_control:SkullAndTreasure',max_episode_steps=999,)
6. 完成了上述工作后,在自己的代码里就可以直接使用下面的语句来构建相应的环境对象了:
id = “SkullAndTreasure-v0” # 设置环境id
env = gym.make(id) # 构建环境对象
env.reset() # 重置环境
env.render() # 绘制环境
Input(“press any key to continue...”)
env.close() # 关闭环境
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
